位置:首頁 > 軟件操作教程 > 編程開發(fā) > Python > 問題詳情

包機制——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)前路徑

繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部