(1)主程序main.py與模塊程序mod1.py在同一目錄下。
專注于為中小企業(yè)提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)新安免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了超過(guò)千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
--src
|--mod1.py
|--main.py
直接在main.py中導(dǎo)入模塊mod1.py,即 import mod1 或 from mod1 import *
(2)主程序main.py所在目錄是模塊程序mod.py所在目錄的父目錄。
--src
|--mod1.py
|--main.py
---mod2
?|--mod2.py
先需要在mod2文件夾中建立空文件__init__.py
然后在main.py中導(dǎo)入模塊mod2.py,即 import mod2.mod2 或 from mod2.mod2 import *
(3)主程序main.py導(dǎo)入上層目錄中的模塊或其他目錄(平級(jí))下的模塊。
--src
|--mod1.py
---mod2
?|--mod2.py
---sub
?|--main.py
先需要在mod2文件夾中建立空文件__init__.py,而src文件夾下不需要建立
然后進(jìn)入主程序main.py所在的路徑,執(zhí)行python main.py
在main.py中導(dǎo)入模塊mod2.py,即 import mod2.mod2 或 from mod2.mod2 import *
執(zhí)行前在main.py中加入:
import sys
sys.path.append("..")
import mod1
import mod2.mod2
Python具備動(dòng)態(tài)導(dǎo)入module并且執(zhí)行其中代碼的能力,所以你只要import你保存的東西就可以,無(wú)需中斷你當(dāng)前的代碼執(zhí)行流。
python中模塊導(dǎo)入的方法:
方式一:使用 import 語(yǔ)句來(lái)引入模塊
直接使用關(guān)鍵詞import,后面跟具體的模塊名稱,就可以導(dǎo)入某一個(gè)模塊。同一個(gè)模塊不管執(zhí)行了多少次import,都只會(huì)被導(dǎo)入一次,以防止模塊被一遍又一遍的執(zhí)行。
方式二:使用from…import 語(yǔ)句來(lái)引入模塊
在使用import語(yǔ)句導(dǎo)入模塊時(shí)會(huì)將整個(gè)模塊引入進(jìn)來(lái),而使用from...import 語(yǔ)句則是從模塊中導(dǎo)入一個(gè)指定的部分到當(dāng)前命名空間中。如上面代碼中則只會(huì)導(dǎo)入pprint模塊中的pprint函數(shù),其他函數(shù)并不會(huì)導(dǎo)入。
方式三:使用from…import語(yǔ)句來(lái)引入模塊
在多數(shù)情況下,Python程序員都不會(huì)使用這個(gè)功能,因?yàn)樗诮忉屍髦幸肓艘唤M未知的名稱,而它們很可能會(huì)覆蓋一些你已經(jīng)定義過(guò)的東西。
注意通常情況下從一個(gè)模塊或者包內(nèi)調(diào)入 * 的做法是不太被接受的, 因?yàn)檫@通常會(huì)導(dǎo)致代碼的可讀性很差。不過(guò),在交互式編譯器中為了節(jié)省打字可以這么用。
模塊的好處
1、大大提高了代碼的可維護(hù)性。
2、代碼不必從零開(kāi)始,一個(gè)模塊編寫完畢之后,其他模塊可以直接調(diào)用,節(jié)約了工作時(shí)間。
3、避免函數(shù)名稱和變量名稱重復(fù),在不同的模塊中可以存在相同名字的函數(shù)名和變量名,但是盡量不要和系統(tǒng)內(nèi)置的模塊名稱重復(fù)。
這個(gè)問(wèn)題涉及到包和模塊管理。包名和模塊名一般是小寫。你的文件是下面的結(jié)構(gòu),需要?jiǎng)?chuàng)建空文件 b/__init__.py,將b目錄變成package。a/a.py
12
from b.c import indexindex()
b/c.py
12
def index(): print("hello")
b/__init__.pya/a.py 里面有兩種引用方式,相對(duì)引用和絕對(duì)引用:# 如果a.py是 library,兩種引用方式都可以
1
from ..b.c import index
# 如果a.py是 executable,必須使用絕對(duì)引用
1
from b.c import index
如果使用絕對(duì)引用,需要確保b所在目錄在PYTHONPATH (sys.path)里面,比如可以這樣執(zhí)行:
1
env PYTHONPATH=. python a/a.py