Должен быть простой способ сделать это, но каким-то образом я могу обернуть голову вокруг этого. Лучший способ описать то, что я хочу, это лямбда-функция для класса. У меня есть библиотека, которая ожидает в качестве аргумента необоснованную версию класса для работы. Затем он создает экземпляр самого класса для работы. Проблема в том, что я хотел бы иметь возможность динамически создавать версии класса, передавать в библиотеку, но я не могу понять, как это сделать, так как библиотека ожидает неопознанную версию. Код ниже описывает проблему:
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 не имеет вызова метода». Не изменяя класс библиотеки, есть ли способ сделать это?