Python——模块和包
一、概念
"""
模块():
一个python文件,以 .py 结尾,包含python对象定义和语句。
模块可以定义函数、类、变量,也可包含可执行文件
导入模块:
1.import 模块名
2.from 模块名 import 功能名
"""
二、具体知识点
2.1定义别名
import 模块名 as 别名
from 模块名 import 功能名 as 别名
使用别名后,原来的名字被替代
def t4(): """定义别名 import 模块名 as 别名 from 模块名 import 功能名 as 别名 """ import time as tt tt.sleep(2) # time.sleep(2) # 使用别名后,原来的名字被替代 # NameError: name 'time' is not defined print('hello') # from time import sleep as s1 # s1(2) # print('hello')
2.2重名的严重性
1 """ 2 导入一个模块,Python解释器对模块位置搜索顺序: 由进及远 3 1.当前目录 4 2.搜shell变量PYTHONPATH下的目录 5 3.查看默认路径,UNIX下,默认一般为/user/local/lib/python 6 注意: 7 1.自定义模块不与已有模块名重名,若重复,则无法使用; 8 2.若自定义于导入的功能重名,则调用后写的功能 9 """ 10 # import random 11 # num = random.randint(1, 5) 12 # print(num) 13 14 # from time import sleep 15 16 # def sleep(): 17 # print('1') 18 19 # sleep() 20 21 """ 22 扩展:重名的严重性 23 Python,引用传递数据 24 1.命名后者会覆盖前者,和模块重名的变量会覆盖功能 25 """ 26 import time 27 print(time) # <module 'time' (built-in)> 28 # time = 1 29 # print(time) # 1
2.3__all__列表
1 import math 2 3 __all__ = ['t_1'] 4 # 若有其他文件调用本文件,则只导入t_1() 5 6 7 def t_1(a, b): 8 print(math.fabs(a+b)) 9 10 11 def t_2(a, b): 12 print(a * b) 13 14 15 # print(__name__) # __main__ 16 if __name__ == '__main__': 17 """ 18 测试信息 19 __name__:系统变量,模块标识符, 20 值,需根据使用位置来确定 21 在自身文件中:__main__ 22 在其他文件中:模块名字 23 main: 24 """ 25 t_1(1, 2) 26 t_2(2, 3)
2.4制作包
1 """ 2 包:有联系的模块组织在一起,放到同一个文件夹, 3 并自动创建一个__init__.py文件 4 制作包:new ——> 包名 ——> Enter ——> 制作模块 5 导入包: 6 1.import 包名 7 2.from 包名 import * 8 """ 9 import my_module1 10 11 12 def t1(): 13 import mypakage.my_module1 14 mypakage.my_module1.info_print() 15 16 17 def t2(): 18 """ 19 必须先在 __init__.py 文件中添加 __all__ = [] 20 控制允许导入的模块 21 原因:不同模块内可能有相同名字的功能 22 """ 23 pass 24 25 26 from mypakage import * 27 my_module1.info_print() 28 29 30 # if __name__ == '__main__': 31 # # t1() 32 # t2()
三、总结
模块是.py文件,包是包含.py文件的文件夹。