引自:https://www.itcodemonkey.com/article/9771.html
0十嘿、一個(gè)模塊(module)就是一個(gè)py文件巡蘸,模塊的名字就是該文件的名字(不包含后綴)匆笤。
1害碾、一個(gè)包(package)就是一個(gè)文件夾汪榔,包名就是文件夾名俘闯。
2潭苞、按import進(jìn)來的對(duì)象不同分為4種場(chǎng)景:
3、解釋器會(huì)按照 sys.path列表的順序來查找被引用的包或模塊名字真朗。
優(yōu)先加載當(dāng)前工作目錄下的模塊此疹,如果你的項(xiàng)目中使用了和內(nèi)建模塊中同名的包或模塊名,就會(huì)遇到?jīng)]有xx屬性之類的報(bào)錯(cuò)提示遮婶。新手特別喜歡干這事蝗碎。
4、你可以操作sys.path旗扑,使得其他路徑的文件加入到Path中蹦骑,使之能被解釋器發(fā)現(xiàn)。
5臀防、另一種加載模塊的方法:如果你的模塊不在sys.path下面眠菇,除了第4條建議外边败,還可以使用imp模塊中的imp.load_source
import imp
imp.load_source("h1", "c://data/hi.py")
import hi
# 可以自己指定模塊的名字,相當(dāng)于 import hi as h2
imp.load_source("h2", "c://data/hi.py")
import h2
6捎废、 import module 時(shí)笑窜, 模塊中的所有代碼將被執(zhí)行(類對(duì)象, 函數(shù)對(duì)象將被創(chuàng)建,不會(huì)被調(diào)用)登疗, import package時(shí)排截, __init__.py文件中的代碼也將被執(zhí)行。
7谜叹、模塊 __file__屬性
導(dǎo)入模塊時(shí)匾寝, 可以通過模塊__file__屬性查看模塊所在磁盤的路徑位置
8、永遠(yuǎn)不要用from <module> import *, 有不可預(yù)知的風(fēng)險(xiǎn)荷腊。