模块
模块是一个包含所有定义的函数和变量的文件,其后缀名是.py。模块可以被其他的程序引入,以使用模块中的函数等功能。
import语句
是在另一个源文件中引入模块的语句。
import module1 ...
当计算器遇到import语句,若模块在当前的搜索路径就会被导入。
搜索路径是一个解释器会先进行搜索的所有目录的列表。如想要导入模块,需要把命令放在脚本的顶端
一个模块只会导入一次,这样可以防止导入模块被一遍又一遍地执行。
from ... import
从模块中导入一个指定的部分到当前命名空间中。
from ... import *
把一个模块的所有内容全部导入到当前的命名空间
__name__属性
果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用__name__
属性来使用该程序块,仅在该模块自身运行时执行。
每个模块都有一个__name__
属性,当其值是’__main__
'时,表明该模块自身在运行,否则是被引入。
dir()函数
dir()可以找到模块内定义的所有名称。没有给定参数,那么dir()函数会列出当前定义的所有的名称。
包
包是一种管理Python模块命名空间的形式。采用“点模块名称”。
在导入一个包的时候,Python会根据sys.path中的目录来寻找这个包中包含的子目录。
目录只有包含一个叫做__init__
.py的文件才会被认作是一个包,
在使用from package import item
的时候,对于的item既可以是包里面的子模块,或者包里面定义的其他名称,如函数、类或变量。
在使用import package
的时候,错了最后一项,都必须是包,而最后一项则可以是模块或者是包,但不可以是类、函数或变量。
在__init__py
中有__all__
的列表。在使用from package import *导入的时候就是把这个列表中的所有名字作为包内容导入。