2014-04-27 40 views
0

假設所有需要考慮的只是用戶定義的功能和系統模塊。有沒有Python的模塊依賴設計的建議或標準?

我已經創建了2個基於它的邏輯結構的模塊,然後我不知道接下來會發生什麼。

假設我在fm1.py中放置了10個函數,在fm2.py中放置了8個函數。 fm1.pyfm2.py中的函數都需要一些系統模塊m1m2,只要其他一些用戶定義函數f1(),f2()

我現在要做的就是創建另一個文件i1.py,它導入系統模塊m1m2f1()f2()的定義也包括在此文件。然後fm1.pyfm2.py導入i1.py1,最後導入fm1.pyfm2.py

我跑main.py並沒有發生錯誤,但是,我不知道我設計依賴的方式可能不是建議的方式。

那麼,有沒有模塊依賴設計的建議或標準?

+0

目前還不清楚你要在這裏解決什麼問題。你沒有錯,但你想改變一切? –

回答

1

正確的方式做,這將是到任何功能需要他們fm1.pyfm2.py功能f1()f2()。例如,如果您最初有這樣的事情

def length(a,b): 
    return metric(a,b) 
,你在 i1.py定義 metric()

。你可以代替做到像

def length(a,b,metric): 
    return metric(a,b) 

然後,如果有人想使用的功能,他們可以導入您的模塊,並調用它像這樣:

from foo import length 

def metric(a,b): 
    return a[0]*b[0] - sum(x*y for x, y in zip(a[1:],b[1:])) 

norm = length(a,b,metric) 
+0

這是做到這一點的一種方式,但我會毫不猶豫地單方面暗示它是正確的方式。 –