包機制——python經(jīng)典實例
提問人:楊紫紅發(fā)布時間:2020-11-26
每一個.py文件稱為一個module,module之間可以互相導(dǎo)入.請參看以下例子:
# a.py
def add_func(a,b):
return a+b
# b.py
from a import add_func # Also can be : import a
print ("Import add_func from module a")
print ("Result of 1 plus 2 is: ")
print (add_func(1,2)) # If using "import a" , then here should be "a.add_func"
module可以定義在包里面.Python定義包的方式稍微有點古怪,假設(shè)我們有一個parent文件夾,該文件夾有一個child子文件夾.child中有一個module a.py . 如何讓Python知道這個文件層次結(jié)構(gòu)?很簡單,每個目錄都放一個名為_init_.py 的文件.該文件內(nèi)容可以為空.這個層次結(jié)構(gòu)如下所示:
parent
--__init_.py
--child
-- __init_.py
--a.py
b.py
那么Python如何找到我們定義的module?在標(biāo)準(zhǔn)包sys中,path屬性記錄了Python的包路徑.你可以將之打印出來:
import sys
print(sys.path)
通常我們可以將module的包路徑放到環(huán)境變量PYTHONPATH中,該環(huán)境變量會自動添加到sys.path屬性.另一種方便的方法是編程中直接指定我們的module路徑到sys.path 中:
import sys
import os
sys.path.append(os.getcwd()+'\\parent\\child')
print(sys.path)
from a import add_func
print (sys.path)
print ("Import add_func from module a")
print ("Result of 1 plus 2 is: ")
print (add_func(1,2))
知識點:
·如何定義模塊和包
·如何將模塊路徑添加到系統(tǒng)路徑,以便python找到它們
·如何得到當(dāng)前路徑
# a.py
def add_func(a,b):
return a+b
# b.py
from a import add_func # Also can be : import a
print ("Import add_func from module a")
print ("Result of 1 plus 2 is: ")
print (add_func(1,2)) # If using "import a" , then here should be "a.add_func"
module可以定義在包里面.Python定義包的方式稍微有點古怪,假設(shè)我們有一個parent文件夾,該文件夾有一個child子文件夾.child中有一個module a.py . 如何讓Python知道這個文件層次結(jié)構(gòu)?很簡單,每個目錄都放一個名為_init_.py 的文件.該文件內(nèi)容可以為空.這個層次結(jié)構(gòu)如下所示:
parent
--__init_.py
--child
-- __init_.py
--a.py
b.py
那么Python如何找到我們定義的module?在標(biāo)準(zhǔn)包sys中,path屬性記錄了Python的包路徑.你可以將之打印出來:
import sys
print(sys.path)
通常我們可以將module的包路徑放到環(huán)境變量PYTHONPATH中,該環(huán)境變量會自動添加到sys.path屬性.另一種方便的方法是編程中直接指定我們的module路徑到sys.path 中:
import sys
import os
sys.path.append(os.getcwd()+'\\parent\\child')
print(sys.path)
from a import add_func
print (sys.path)
print ("Import add_func from module a")
print ("Result of 1 plus 2 is: ")
print (add_func(1,2))
知識點:
·如何定義模塊和包
·如何將模塊路徑添加到系統(tǒng)路徑,以便python找到它們
·如何得到當(dāng)前路徑
繼續(xù)查找其他問題的答案?
相關(guān)視頻回答
點擊加載更多評論>>