我建立的,將在項目中經常重複使用各種功能的庫。每個函數都是無狀態的(創建時不需要參數,並且沒有任何內存)。一些功能使用他人。蟒蛇:無狀態的函數庫設計
這些功能將被繞過作爲該項目的其餘參數。
以下方法哪個好?
1.定義某個模塊中的所有函數爲全局函數:
def f1(x):
# use x
def f2(x):
# use x and f1
2.Define的所有功能,如類的方法,並安排在一個層次中的類基礎上使用:
class F1:
def __call__(x):
# use x
f1 = F1()
class F2(F1):
def __call__(x):
# use x and f1
f2 = F2()
我甚至考慮過選項2的原因是我的一些功能有一些共同之處。例如,通過調用f1
功能f2
,f3
,f11
全部啓動。我想我可能想要做這樣的事情:
class F1:
def __call__(self, x):
self.f1(x)
self.calc(x)
def f1(self, x):
# do something
# don't define calc here; F1 is abstract base class
class F2(F1):
def calc(self, x):
# do something
class F3(F1):
def calc(self, x):
# do something
你甚至在哪裏做了2的想法? –
@FrancisAvila:看到我更新的問題來解釋我的想法。 – max
你是否想要讓'F2'和'F3'擴展'F1'?這不是代碼所說的...... –