自学python系列11:python的模块

1.1什么是模块

     当代码量很大时,把代码分成一些有组织的代码段。python允许“调入”一个模块,允许使用其他模块的属性来利用之前的工作成果,实现代码重用。把其他模块属性附加到你的模块中的操作叫导入。那些自我包含并有组织的代码片段是模块(module)
 
1.2模块和文件
     一个文件是独立模块,一个模块也可以被看作一个文件。与其他可以导入类的语言不同,在python中导入的是模块或模块属性。
 1.2.1模块名称空间
     通过句点属性标识指定各自的名称空间-防止名称冲突的发生,
1.2.2搜索路径和路径搜索
     sys.path
若你知道需要导入的模块是什么,而它的路径不在搜索路径里,那么只需要调用列表的append()方法,如:
     sys.path.append('/home/wesc/py/lib')

1.3名称空间
     执行期间有两个或三个活动的名称空间。这三个名称空间分别是局部名称空间,全局名称空间和内建名称空间。
 
1.3.1名称空间和变量作用域比较
1.3.2名称查找,确定作用域,覆盖
     先局部名称空间查找,全局名称空间,内建名称控件;还找不到:
>>> yu

Traceback (most recent call last):
  File "<pyshell#62>", line 1, in <module>
    yu
NameError: name 'yu' is not defined
 
1.3.3无限制的名称空间
 
 
1.4导入模块
1.4.1import语句
     使用import语句导入模块:
import module1
import module2
     也可以一行导入多个:
import module1,modul2
1.4.2from-import语句
     把指定名称导入到当前作用域
1.4.3多行导入
     从一个模块导入很多属性,直到自动换行,需要一个\
     from Tkinter import Tk,Frame,Button,Entry,Canvas,\

     Text,LEFT,DISABLED,NORMAL,RIDGE,END

可选择多行的from-import语句:
from Tkinter import Tk,Frame,Button,Entry,Canvas
from Tkinter import Text,LEFT,DISABLED,NORMAL,RIDGE,END
 
真正的python程序员应用python的标准分组机制(圆括号)来创建更合理的多行导入语句:
nter import (Tk,Frame,Button,Entry,Canvas,Text,LEFT,DISABLED,NORMAL,RIDGE,END)
1.4.4扩展的import语句(as)
 
1.5模块导入的特性
1.5.1载入时执行模块
 
1.5.2导入和加载
     导入可以多次,但加载执行只在第一次导入时发生
1.5.3导入到当前名称空间的名称
     访问模块module中的var:
     from module import var
     把指定模块所有名称导入到当前名称空间里:
     from module import *
1.5.4被导入到导入者作用域的名字
 
1.5.5关于__future__
 
1.6模块内建函数
1.6.1__import__()
1.6.2globals()和locals()
 
1.6.3reload()
     reload(module)
     module是你想要重新导入的模块。使用reload()有一些标准。首先模块必须是全部导入(不是使用from-import),而且必须被成功导入。另外reload()函数的参数必须是模块自身而不是包含模块名的字符串,也就是说必须类似reload(sys)而不是reload('sys')
 
 
posted @ 2014-11-18 14:49  Mr.Dantes  阅读(188)  评论(0编辑  收藏  举报