必須有一個簡單的方法來做到這一點,但不知何故,我可以把我的頭圍繞它。我可以描述我想要的最好的方式是一個類的lambda函數。我有一個圖書館期望作爲一個參數的一個類的未經證實的版本來處理。然後它實例化類自身來處理。問題是,我希望能夠動態創建類的版本,傳遞給庫,但我不知道如何去做,因爲庫期望一個未被證實的版本。下面的代碼說明了問題:python中的類的lambda函數?
class Double:
def run(self,x):
return x*2
class Triple:
def run(self,x):
return x*3
class Multiply:
def __init__(self,mult):
self.mult = mult
def run(self,x):
return x*self.mult
class Library:
def __init__(self,c):
self.c = c()
def Op(self,val):
return self.c.run(val)
op1 = Double
op2 = Triple
#op3 = Multiply(5)
lib1 = Library(op1)
lib2 = Library(op2)
#lib3 = Library(op3)
print lib1.Op(2)
print lib2.Op(2)
#print lib3.Op(2)
我不能使用通用乘類,因爲我必須先初始化它打破了圖書館「AttributeError的:乘實例沒有呼叫方法」。在不改變圖書館類的情況下,我有辦法做到這一點嗎?
使用通用變頻器,當然是,它會在原則上接受任何一個帶參數的功能,從需要明確界定其類 – 2008-12-11 19:35:18