Python 模块和包
Python 模块(Module),其实就是是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。
- 模块让你能够有逻辑地组织你的 Python 代码段。
- 把相关的代码分配到一个模块里能让你的代码更好用,更易懂。
- 模块能定义函数,类和变量,模块里也能包含可执行的代码。
一、模块的导入
(1)import 模块名
import 模块名1,模块名2,模块名3,... # 如果导入多个模块,模块名之间用逗号隔开
模块名也就是.py文件名,如 test.py ,导入语句就是 import test
导入模块后,如果要调用模块中的函数,语法为:
模块名.函数名
(2)from 模块名 import 功能名
from 模块名 import 功能1,功能2,... from 模块名 import * # *表示全部导入
如果要导入一个模块中的部分功能,用from...import...导入
假设有个 test.py模块,模块中定义了函数func1(),func2(),func3()... ,我们想导入func2():
from test import func2 func2() # 直接调用即可
(3)import...as...
import 模块名 as 别名 from 模块名 import 功能 as 别名
import random as rd print(rd.randint(1, 100))
(4)__all__变量
事实上,当我们以from 模块 import * 方式导入某个模块时,导入的是该模块中那些名称不以下划线(单下划线“_”或者双下划线“__”)开头的变量、函数和类。
因此,如果我们不想模块文件中的某个成员被引入到其它文件中使用,可以在其名称前添加下划线。
另外,以from 模块 import * 方式导入某个模块时,还可以在.py文件中定义__all__变量来指定可以导入的内容(变量、函数、类)。
__all__变量是一个列表,其元素是变量名、函数名、类名。
当你导入一个模块,Python 解析器对模块位置的搜索顺序是:
- 1、当前目录
- 2、如果不在当前目录,Python 则搜索在 shell 变量 PYTHONPATH 下的每个目录。
- 3、如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/。
二、包
为了方便调用将一些功能相近的模块组织在一起,或是将一个较为复杂的模块拆分为多个组成部分;
可以将这些 .py 源程序文件放在同一个文件夹下,按照 Python 的规则进行管理,这样的文件夹和其中的文件就称为包。
包下面有个名为__init__.py的文件。在该文件中编写的代码会在导入包时自动执行。
导入包和使用包
(1)import
导入:import 包名.模块名
使用:包名.模块名.⽬标
(2)from...import...
导入:from 包名 import *
使用:模块名.⽬标
同导入模块类似,在 __init__.py ⽂件中添加 __all__ = [] ,控制允许导⼊的模块列表。
浙公网安备 33010602011771号