1. 模块导入的几种方式
# 从模块导入某个方法或模块中的某个内容
from xxx import yyy
# 导入整个模块,调用时需要xxx.abc()
import xxx
# 模块中导入所有,调用时不需要xxx.,直接使用模块中的内容
from xxx import *
# 导入两个模块
import xxx, zzz
from xxx import yyy, mmm
# 将模块导入并改名
import xxx as XXX
# 重新加载模块
# 在程序运行过程中,模块中的内容被修改了就要使用reload来重新导入
from imp import reload
reload(aa)
2. 多模块导入调用时注意点
正常情况,如下测试代码:
common.py
RECV_DATA_LIST = list() # 用来存储数据
HANDLE_FLAG = False # 用来标记是否处理完成
handle_msg.py
from common import RECV_DATA_LIST
# from common import HANDLE_FLAG
import common
def handle_data():
"""hand_data 模拟处理recv_msg模块接受的数据
"""
print("---->handle_data")
for i in RECV_DATA_LIST:
print(i)
# 既然处理完成了,那么将变量HANDLE_FLAG设置成True,意味着处理完成
# global HANDLE_FLAGG
# HANDLE_FLAGG = True
common.HANDLE_FLAG = True
def test_handle_data():
"""test_handle_data 测试处理是否完成,变量是否设置为True
"""
print("----> test_handle_data")
# if HANDLE_FLAG:
if common.HANDLE_FLAG:
print("====已经处理完成====")
else:
print("====未处理完成====")
recv_msg.py
from common import RECV_DATA_LIST
# from common import HANDLE_FLAG
import common