Python中类的Lambda函数?

11 浏览
0 Comments

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类的情况下,我能做到这一点吗?

0