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

包機(jī)制——python經(jīng)典實(shí)例

提問(wèn)人:楊紫紅發(fā)布時(shí)間:2020-11-26
每一個(gè).py文件稱(chēng)為一個(gè)module,module之間可以互相導(dǎo)入.請(qǐ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定義包的方式稍微有點(diǎn)古怪,假設(shè)我們有一個(gè)parent文件夾,該文件夾有一個(gè)child子文件夾.child中有一個(gè)module a.py . 如何讓Python知道這個(gè)文件層次結(jié)構(gòu)?很簡(jiǎn)單,每個(gè)目錄都放一個(gè)名為_(kāi)init_.py 的文件.該文件內(nèi)容可以為空.這個(gè)層次結(jié)構(gòu)如下所示:
parent 
  --__init_.py
  --child
    -- __init_.py
    --a.py

b.py

那么Python如何找到我們定義的module?在標(biāo)準(zhǔn)包sys中,path屬性記錄了Python的包路徑.你可以將之打印出來(lái):
import sys

print(sys.path)

通常我們可以將module的包路徑放到環(huán)境變量PYTHONPATH中,該環(huán)境變量會(huì)自動(dòng)添加到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))

知識(shí)點(diǎn):
·如何定義模塊和包 
·如何將模塊路徑添加到系統(tǒng)路徑,以便python找到它們 
·如何得到當(dāng)前路徑

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

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