Python - 模块与包的使用
模块
-
Python中一个py文件就是一个模块
-
怎么在一个模块中使用另外一个模块的内容
注意:若需要使用一个模块,那么该模块的模块名必须是标识符并且不是关键字
一个模块可以使用另一模块中所有全局变量,但使用前必须先导入
-
导入模块
import 模块名 — 导入指定模块,导入以后可通过’模块名.'方式使用其全局变量
from 模块名 import 全局变量1,全局变量2,… — 导入指定模块后,可直接使用指定的全局变量
from 模块名 import * — 导入指定模块,导入后可以直接使用所有的全局变量
import 模块名 as 新模块名 — 模块名冲突时将导入的模块名重命名,使用模块名时使用新模块名
from 模块名 import 全局变量1 as newName,全局变量2… — 对需要重命名的变量后添加as
-
导入模块的原理
当通过import或者from-import 导入一个模块时,系统会自动将这个模块中的代码全部执行一遍
'''==============test1==============''' a = 999 def func1(): print(f'我是被demo3导入过来的模块!') # 这个if语句中的代码在被别的模块导入时不会执行,直接运行该模块时会被执行 if __name__ == '__main__': for b in range(10000): print(f'x:{b}')
# import test1 # 以工程打开项目才可以
#
# # # 方式1:import
# # print(test1.a)
# # print(test1.b)
# # test1.func1()
#
# # # 方式2:from ... import
# # from test1 import a,func1
# #
# # print(a)
# # func1()
#
# # # 方式3:from ... import *
# # from test1 import *
# #
# # print(a)
# # print(b)
# # func1()
#
# # # 方式4:import ... as...
# # import test1 as test2
# #
# # print(test2.a)
# # print(test2.b)
# # test2.func1()
#
# # 方式5:from ... import ... as...
# from test1 import a as x,b,func1
# a = 888
# print(x)
# print(b)
# func1()
如果在导入模块时希望某些代码不在引入时被执行则需要将这些代码写入 if _ _ name_ _ == ‘_ _ main_ _’:中
包
-
什么是包
包就是包含__ init__.py文件的文件夹
-
使用包中的内容(导入)
import 包名 — 直接导入包
import 包.模块 — 可以通过‘包.模块.’使用指定模块中所有全局变量
from 包 import 模块1,模块2… — 通过模块.全局变量使用
from 包.模块 import 全局变量1,全局变量2… — 直接使用全局变量
-
导入包的原理
通过包导入包中的模块的时候,程序会先执行包中__ init__.py文件中所有的代码然后再执行对应模块中的代码
# 创建快捷键 --- 更加方便的使用包中模块 from files.module1 import a # from files import module1... # 封装通用的函数或数据 # def open_file(): # print('打开文件!')
# 1、直接导入包 --- 只执行__init__.py # import files # # 2、通过包导入模块 # import files.module1 # print(files.module1.a) # # 3、通过包导入模块 # from files import module1 # print(module1.a) # # # 4、通过包导入模块中的内容 # from files.module1 import a # print(a) # (需在__init__里包含) # 5、直接使用包中的快捷键 import files print(files.a)