一、基础知识

1、__name__ == '__main__'

所有模块都有一个__name__属性,__name__的值取决于如何应用模块,在作为独立程序运行的时候,__name__属性的值是‘__main__’,而作为模块导入的时候,这个值就是该模块的名字了

if __name__ == '__main__'

  test()

含义:如果name调用的是主程序的则,运行if里面的test()语句,而不是其他的(如导入的包)的语句

2、搜索路径:python模块的导入需要一个路径搜索的过程,导入一个hello模块,Python需要找到一个叫hello.py的文件,如果找到就搜索成功即导入成功,找不到就失败

-- Python搜索相关路径下的模块

>>> import sys
>>> sys.path
['', '/Users/wufq/Documents', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
>>> #一般常用的是/site-packahes路径,按照这个逻辑来说,我们只需要告诉模块文件在哪里,就可以让Python在此路径下找

--存放Python的模块文件

>>> import Temperature
Traceback (most recent call last):
File "<pyshell#2>", line , in <module>
import Temperature
ModuleNotFoundError: No module named 'Temperature'
>>> sys.path.append("/Users/wufq/Documents/test")
>>> sys.path
['', '/Users/wufq/Documents', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages', '/Users/wufq/Documents/test']
>>> import Temperature
>>> Temperature.c2f()
89.6
>>> '''
|--代码解释:
|-- 先导入:import Temperature,报错,原因是python在搜索路径下没有找到这个包
|-- 解决方法:把Temperature文件所在的路径放到python的搜索路径下:sys.path.append("/Users/wufq/Documents/test"),查看一下是不是已经加入:sys.path
|-- 再次导入验证:import Temperature --> Temperature.c2f() --> 89.6
'''

3、包(package)

-- 创建一个文件夹,用于存放相关的模块,文件夹的名字即包的名字

-- 在文件夹中创建一个__init__.py的模块文件,内容可以为空明

-- 将相关的文件放入文件中

import IM.Temperature as tr

print(tr.c2f())
print(tr.f2c()) '''
|-- 代码解析:
|--、先创建一个文件夹IM,并把Temperature.py文件放到IM文件夹内,并创建一个空的__init__.py文件
|--、新建一个calc.py文件,编写相应的代码(即:上面的代码)
|--、import时必须带着包名IM(import IM.Temperature as tr),否则就会报错
'''

4、如果不想把相应的模块放在当前文件夹内,最好的选择是?

放在site-packages文件夹内,因为他就是存放模块的文件夹

5、import urllib.request语句,这个urllib是什么

urllib是负责管理url的包,用于访问网址

6、如何区分一个文件夹是普通的文件夹还是包

主要看这个文件夹内是否含有__init__.py,如果有则是包,并且__init__.py可以是空文件,也可以里面写一些代码

【python51--__name__属性】的更多相关文章

  1. __name__属性

    #coding=utf-8#首先我们分别看一下这个模块在不同场景中的__name__的值print __name__ #其次我们看一下__name__属性的常用情况if __name__==" ...

  2. Python的程序入口 __name__属性

    python中每个模块都有一个 '__name__' 属性,当其值为 '__main__' 时,表名该模块自身在运行,否则是被引入的. 当一个模块被当做一个整体调用的时候,模块名.__name__ 的 ...

  3. Python中__name__属性的妙用

    在Python中,每一个module文件都有一个built-in属性:__name__,这个__name__有如下特点: 1 如果这个module文件是被别的文件导入的,那么,该__name__属性的 ...

  4. Python 的__name__属性

    Python 的__name__属性: 一个模块被另一个程序第一次引入时,其主程序将运行. 如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用__name__属性来使该程序块仅在该模块自身 ...

  5. 11 模块、模块的搜索顺序、__file__内置属性、__name__属性

    模块的概念 一个python文件就是一个模块. 模块名同时也是一个标识符,需要符合标识符的命名规则. 在模块中定义的全局变量.函数.类 都是个外界提供的直接使用的工具. 模块就好比工具包,要想使用一个 ...

  6. python中__name__属性的使用

    python常用模块目录 1.打印出函数名字而非函数名对应的地址 )打印的是函数地址 def func(): print("我是%s函数"%func) func() ------- ...

  7. Python - 属性简介"__name__"

    模块是对象,并且每个模块都有一个内置属性__name__.当一个模块被直接运行的时候,该模块__name__的值就等于缺省的'__main__'.如果一个模块被import ,那么这个被引入模块__n ...

  8. python的__name__和dir()属性

    1.__name__属性 一个模块被另一个程序第一次引入时,其主程序将运行.如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用__name__属性来使该程序块仅在该模块自身运行时执行.示例 ...

  9. if __name__== "__main__" 的意思(作用)python代码复用

    if __name__== "__main__" 的意思(作用)python代码复用 转自:大步's Blog  http://www.dabu.info/if-__-name__ ...

  10. python动态获取对象的属性和方法 (转载)

    首先通过一个例子来看一下本文中可能用到的对象和相关概念. #coding:utf-8 import sys def foo():pass class Cat(object): def __init__ ...

随机推荐

  1. SWF加载器控件 SWFLoaderControl

    SWF加载器控件 书:165 <?xml version="1.0" encoding="utf-8"?> <s:Application xm ...

  2. HDU 2254 奥运(矩阵+二分等比求和)

    奥运 [题目链接]奥运 [题目类型]矩阵+二分等比求和 &题解: 首先离散化城市,之后就是矩阵快速幂了,但让求的是A^(t1)+A^(t1+1)+...+A^(t2),我先想的是打表,但时间真 ...

  3. oracle中实现自增id

    在一些数据库(例如mysql)中,实现自增id只要在建表的时候指定一下即可, 但是在oracle中要借助sequence来实现自增id, 要用上自增id,有几种方式: 1.直接在insert语句中使用 ...

  4. 记在Archlinux中安装python的pymssql模块过程中遇到的问题

    为什么要安装这个模块?因为要连接SQLServer数据库. 看到可以使用pyodbc这个模块进行连接,但对odbc不熟悉,所以选用了看起来更简单的 pymssql. 直接执行: pip install ...

  5. CSS radial-gradient() 函数实现渐变

    值 描述 shape 确定圆的类型: ellipse (默认): 指定椭圆形的径向渐变. circle :指定圆形的径向渐变 size 定义渐变的大小,可能值: farthest-corner (默认 ...

  6. SQL query - check latest 3 days failed job.

    select top 100 js.last_run_date ,j.name, js.step_id,js.step_name,js.last_run_date,jsl.log,jh.message ...

  7. uvalive 4452 The Ministers’ Major Mess

    题意: 有一些部长需要对某些账单进行投票. 一个部长最多对4个账单进行投票,且每票对一个账单通过,要么否决. 问是否存在一个方案使得所有部长有超过半数的投票被通过,如果有,那么说明哪些账单的决定是明确 ...

  8. MVC中的Ajax与增删改查(一)

    自入手新项目以来,一直处于加班状态,博客也有两周没更,刚刚完成项目的两个模组,稍有喘息之机,写写关于项目中 的增删改查,这算是一个老生常谈的问题了,就连基本的教材书上都有.刚看书的时候,以为 没什么可 ...

  9. QT 通过QNetworkReply *获取对应请求的URL地址

    [1]QT 通过QNetworkReply *获取对应请求的URL地址 reply->url().toString(); Good Good Study, Day Day Up. 顺序 选择 循 ...

  10. 设计模式之Observer(观察者)(转)

    Java深入到一定程度,就不可避免的碰到设计模式(design pattern)这一概念,了解设计模式,将使自己对java中的接口或抽象类应用有更深的理解.设计模式在java的中型系统中应用广泛,遵循 ...