115.包

包是一个包含多个模块的特殊目录,目录下有一个特殊的文件 __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("接收消息")
原文地址:https://www.cnblogs.com/kangwenju/p/12883200.html