import导入模块
生活随笔
收集整理的這篇文章主要介紹了
import导入模块
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
? 面試題:?
? ? ? ? import module與from module import * 兩種模塊導(dǎo)入有何區(qū)別
? ? ? ? ? ? ?1. import module 引用共享變量時(shí),要使用module.變量名,而from module ? ?import * 直接使用變量名即可
? ? ? ? ? ? ?2. import module方式 ?
? ? ? ? ? ? ? ? 本地不會(huì)創(chuàng)建新變量,操作的是目標(biāo)模塊的變量
? ? ? ? ? ? ?3. from module import *方式
? ? ? ? ? ? ? ? ?在本地創(chuàng)建一個(gè)與目標(biāo)模塊相同的變量名,并且默認(rèn)與目標(biāo)模塊變量指向同一個(gè)內(nèi)存空間?
import導(dǎo)入模塊
1. import 搜索路徑
路徑搜索
- 從上面列出的目錄里依次查找要導(dǎo)入的模塊文件
- '' 表示當(dāng)前路徑
- 列表中的路徑的先后順序代表了python解釋器在搜索模塊時(shí)的先后順序
程序執(zhí)行時(shí)添加新的模塊路徑
sys.path.append('/home/itcast/xxx') sys.path.insert(0, '/home/itcast/xxx') # 可以確保先搜索這個(gè)路徑 In [37]: sys.path.insert(0,"/home/python/xxxx") In [38]: sys.path Out[38]: ['/home/python/xxxx','','/usr/bin','/usr/lib/python35.zip','/usr/lib/python3.5','/usr/lib/python3.5/plat-x86_64-linux-gnu','/usr/lib/python3.5/lib-dynload','/usr/local/lib/python3.5/dist-packages','/usr/lib/python3/dist-packages','/usr/lib/python3/dist-packages/IPython/extensions','/home/python/.ipython']2. 重新導(dǎo)入模塊
模塊被導(dǎo)入后,import module不能重新導(dǎo)入模塊,重新導(dǎo)入需用reload
?
3. 多模塊開發(fā)時(shí)的注意點(diǎn)
recv_msg.py模塊
from common import RECV_DATA_LIST # from common import HANDLE_FLAG import commondef recv_msg():"""模擬接收到數(shù)據(jù),然后添加到common模塊中的列表中"""print("--->recv_msg")for i in range(5):RECV_DATA_LIST.append(i)def test_recv_data():"""測(cè)試接收到的數(shù)據(jù)"""print("--->test_recv_data")print(RECV_DATA_LIST)def recv_msg_next():"""已經(jīng)處理完成后,再接收另外的其他數(shù)據(jù)"""print("--->recv_msg_next")# if HANDLE_FLAG:if common.HANDLE_FLAG:print("------發(fā)現(xiàn)之前的數(shù)據(jù)已經(jīng)處理完成,這里進(jìn)行接收其他的數(shù)據(jù)(模擬過程...)----")else:print("------發(fā)現(xiàn)之前的數(shù)據(jù)未處理完,等待中....------")handle_msg.py模塊
from common import RECV_DATA_LIST # from common import HANDLE_FLAG import commondef handle_data():"""模擬處理recv_msg模塊接收的數(shù)據(jù)"""print("--->handle_data")for i in RECV_DATA_LIST:print(i)# 既然處理完成了,那么將變量HANDLE_FLAG設(shè)置為True,意味著處理完成# global HANDLE_FLAG# HANDLE_FLAG = Truecommon.HANDLE_FLAG = Truedef test_handle_data():"""測(cè)試處理是否完成,變量是否設(shè)置為True"""print("--->test_handle_data")# if HANDLE_FLAG:if common.HANDLE_FLAG:print("=====已經(jīng)處理完成====")else:print("=====未處理完成====")main.py模塊
from recv_msg import * from handle_msg import *def main():# 1. 接收數(shù)據(jù)recv_msg()# 2. 測(cè)試是否接收完畢test_recv_data()# 3. 判斷如果處理完成,則接收其它數(shù)據(jù)recv_msg_next()# 4. 處理數(shù)據(jù)handle_data()# 5. 測(cè)試是否處理完畢test_handle_data()# 6. 判斷如果處理完成,則接收其它數(shù)據(jù)recv_msg_next()if __name__ == "__main__":main()?
?
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的import导入模块的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 谷歌地图的离线地图下载
- 下一篇: Kubernetes初步学习