当我们把一些常用的功能,抽象出来,放在单独的文件里面。这样的一些文件,就可以称之为模块
。我们在 Python 教程 开篇时提到,Python之所以强大,就是有很多很多的库
,当我们要开发一件产品时,可以从这些库
中找到特定的零件进行拼装,组合而成。所谓的库
,就是模块
。
hello.py
def say():
print('hello !')
if __name__ == '__main__':
say()
main.py
>>> import hello as h # import 导入模块 | as 别名,如果一个模块的名称特别的长,就可以使用as另外起一个短点的名字
>>> h.say() # 执行 hello.py 的 say() 方法
'hello !'
__name__
代表当前模块的名称,hello.py
文件如果使用python hello.py
的方式运行,__name__
的值就等于__main__
,此时say()
函数会被执行。如果被当时模块导入时,__name__
的值就会是模块名称hello.py
。
模块通常不只有一个文件,是由多个文件
,放在一个目录
里组成的。
alphabet
` __init__.py # 模块文件,有了这个空文件,该目录就变成一个模块。
` a.py
` b.py
` ...
a.py
def alpha():
print('alpha')
b.py
def beta():
print('beta')
main.py
>>> from alphabet import a # 要导入目录里面模块需要使用 from import 语法 | from 目录名 import 文件名
>>> a.alpha()
'alpha'
>>> from alphabet import * # 星号代表导入 alphabet 目录下的所有文件
>>> b.beta()
'beta'
__init__.py
# __init__ 可以是空的,也可以输入内容,一般做为模块的入口或者公共文件
def init():
print('__init__')
main.py
>>> import alphabet # 这个目录名执行的,就是 __init__ 文件里的内容
>>> alphabet.init()
'__init__'