必须有一种简单的方法来做到这一点,但不知何故我可以绕着它走。我可以描述我想要的最好的方法是一个类的 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)
我不能使用通用的 Multiply 类,因为我必须先实例化它,这会破坏库“AttributeError:Multiply 实例没有调用方法”。在不更改 Library 类的情况下,有没有办法可以做到这一点?