模块
什么是模块(module
)
- 是一个Python文件
- 模块包含:函数、类、变量、可执行的代码
- 模块分类:
- 内置标准模块(又称标准库)
- 第三方开源模块
- 自定义模块
导入模块的方式
- 几种方式:
import [模块名] as [别名]
from [模块名] import [功能名]
from [模块名] import *
from [模块名] import [功能名] as [别名]
-
注意点:
-
如果一个模块文件中有
__all__
变量,当使用from [模块名] import *
导入模块时,只能导入__all__
变量所设置的列表的元素。 -
举例:
module2.py__all__ = ['hello'] def hello(): print('hello world') def module2_hello(): print('module2_hello')
module1.py
from module2 import * module2_hello()
运行结果
-
-
引入模块查找顺序:
- 导入一个模块
- Python解释器会按照
sys.path
列表中的路径顺序去依次到每个目录下匹配你要导入的模块名 - 只要在一个目录下匹配到了该模块名,就立刻导入
- 不再继续往后找了
导入方式举例
module2.py
的内容
def hello():
print('hello world')
def module2_hello():
print('module2_hello')
def module2_kai_hello():
print('module2_kai_hello')
def module2_kai_abc():
print('module2_kai_abc')
module1.py
的内容
- 第一种
import module2 as kkk
kkk.hello()
运行module1.py
- 第二种
from module2 import module2_hello
module2_hello()
运行module1.py
- 第三种
from module2 import *
module2_hello()
module2_kai_hello()
运行module1.py
- 第四种
from module2 import module2_kai_abc as abc
abc()
运行module1.py
包
什么是包
- 包将有联系的模块组织在一起
- 即许多个Python文件放在同一个文件夹下
- 并且该文件夹下有一个
__init__.py
文件 - 满足以上条件的文件夹就称之为包
导入方式
import [包名.模块名]
from [包名] import [模块名]
如何使用Pycharm创建一个包
-
新建包后,包内部会自动创建一个
__init__.py
文件,这个文件控制着包的导入行为
目录结构:
pak_module1.py
的内容def pak_module1_hello(): print('pak_module1_hello')
-
举例(
module1.py
导入包kai_study_package
)- 第一种方式
import kai_study_package.pak_module1 kai_study_package.pak_module1.pak_module1_hello()
运行结果
- 第二种方式
from kai_study_package import pak_module1 pak_module1.pak_module1_hello()
运行结果