Python中类的Lambda函数?
Python中类的Lambda函数?
一定有一种简单的方法可以做到这一点,但不知何故我无法理解。我能够最好地描述我想要的是一个类的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实例没有call方法"。在不改变Library类的情况下,我能做到这一点吗?