'''
⽬标
了解模块
导⼊模块
制作模块
__all__
包的使⽤⽅法
'''
'''
⼀. 模块
Python 模块(Module),是⼀个 Python ⽂件,以 .py 结尾,包含了 Python 对象定义和Python语句。
模块能定义函数,类和变量,模块⾥也能包含可执⾏的代码。
1.1. 导⼊模块
1.1.1 导⼊模块的⽅式
import 模块名
from 模块名 import 功能名
from 模块名 import *
import 模块名 as 别名
from 模块名 import 功能名 as 别名
'''
# import math
#
# print(math.sqrt(9)) # 3.0
#
# from math import sqrt
#
# print(sqrt(16))
#
# import time as tt
#
# tt.sleep(2)
# print('hello')
#
# from time import sleep as sl
#
# sl(2)
# print('hello')
'''
1.2. 制作模块
在Python中,每个Python⽂件都可以作为⼀个模块,模块的名字就是⽂件的名字。也就是说⾃定义模
块名必须要符合标识符命名规则。
'''
# 1.2.1 定义模块
# 新建⼀个Python⽂件,命名为 my_module1.py ,并定义 testA 函数。
import my_module
my_module.testA(1, 1)
'''
1.2.4 注意事项
如果使⽤ from .. import .. 或 from .. import * 导⼊多个模块的时候,且模块内有同名功能。当调
⽤这个同名功能的时候,调⽤到的是后⾯导⼊的模块的功能。
'''
'''
1.3. 模块定位顺序
当导⼊⼀个模块,Python解析器对模块位置的搜索顺序是:
1. 当前⽬录
2. 如果不在当前⽬录,Python则搜索在shell变量PYTHONPATH下的每个⽬录。
3. 如果都找不到,Python会察看默认路径。UNIX下,默认路径⼀般为/usr/local/lib/python/
模块搜索路径存储在system模块的sys.path变量中。变量⾥包含当前⽬录,PYTHONPATH和由安装过
程决定的默认⽬录。
注意:
⾃⼰的⽂件名不要和已有模块名重复,否则导致模块功能⽆法使⽤
使⽤from 模块名 import 功能 的时候,如果功能名字重复,调⽤到的是最后定义或导⼊的功能。
'''
# 1.4. __all__
# 如果⼀个模块⽂件中有 __all__ 变量,当使⽤ from xxx import * 导⼊时,只能导⼊这个列表中的元素。
'''
模块内容如下: 则导入模块时只能使用testA()
__all__ = ['testA']
def testA():
print('testA')
def testB():
print('testB')
'''
'''
⼆. 包
包将有联系的模块组织在⼀起,即放到同⼀个⽂件夹下,并且在这个⽂件夹创建⼀个名字
为 __init__.py ⽂件,那么这个⽂件夹就称之为包。
2.1 制作包
[New] — [Python Package] — 输⼊包名 — [OK] — 新建功能模块(有联系的模块)。
注意:新建包后,包内部会⾃动创建 __init__.py ⽂件,这个⽂件控制着包的导⼊⾏为。
'''
# 2.2 导⼊包
import mypackage.my_module1
mypackage.my_module1.info_print1()
'''
如果使用 from mypackage import *,则必须:
在 __init__.py ⽂件中添加 __all__ = [ ,,,] ,控制允许导⼊的模块列表。
'''
from mypackage import *
my_module2.info_print2()
Python模块和包
最新推荐文章于 2024-09-23 19:27:15 发布