包
包是一个包含多个模块的特殊目录,目录下有一个特殊的文件 __init.py,包名的命名方式一般使用小写字母和下划线组成。
示例:
1.新建一个 hm_message 的 包;
2.在目录下,新建两个文件 send_message 和 receive_message;
3.在 send_message 文件中定义一个 send 函数;
4.在 receive_message 文件中定义一个 receive 函数;
5.在外部直接导入 hm_message 的包;
包的导入
import 包名.模块名
# 导入包中模块语法格式1: import hm_message.send_message import hm_message.receive_message # 使用方式 hm_message.send_message.send() hm_message.receive_message.receive()
from 包名 import 模块名
# 导入包中模块语法格式2: from hm_message import send_message # 调用方式 send_message.send()
from 包名 import *
# 导入包中模块语法格式3: from hm_message import * # 调用方式 send_message.send()
在包中__init__.py文件中,定义一个__all__变量,它控制着 from 包名 import *时导入的模块。
例子:
# 工程文件夹 -> 包 -> 模块 -> 类 -> 函数(方法) -> 变量 # 包的导入 # 01: import 包名.模块名 # import hm_message.send_message, hm_message.receive_message # # # 使用格式: 包名.模块名. 全局变量 | 函数 | 类 # hm_message.send_message.send() # hm_message.receive_message.receive() # 02: from 包名 import 模块名 # from hm_message import send_message # 使用格式: 模块名. 全局变量 | 函数 | 类 # send_message.send() # 03: 选择性导入 哪些被导入 是包中 __init__.py文件中 __all__ 进行约束的 from hm_message import * # 使用格式: 模块名. 全局变量 | 函数 | 类 receive_message.receive()
包中的模块:
__init__.py中:
__all__ = ["receive_message"]
send_message中:
# 定义一个函数 def send(): print("发送消息")
receive_message中:
# 定义一个函数 def receive(): print("接收消息")