Я бы добавил метод к class
динамически ... имя функции также будет передаваться динамически.
Как я могу это сделать?Я пытался таким образом
def decor(*var):
def onDecorator(aClass):
class onInstance:
def __init__(self,*args,**kargs):
setter=var
aClass.setter = self.flam
self.wrapped = aClass(*args,**kargs)
def __getattr__(self,attr):
return getattr(self.wrapped,attr)
def __setattr__(self,attr,value):
if attr == 'wrapped':
self.__dict__[attr]=value
else:
setattr(self.wrapped,attr,value)
def flam(self,*args):
self.__setattr__('dimension',len(args[0]))
return onInstance
return onDecorator
, но если я делаю:
print(aClass.__dict__)
у меня есть
'setter': <bound method onInstance.flam of <__main__.onInstance object at 0x522270>>
вместо var
: .....
У меня есть этот класс:
class D:
def __init__(self, data):
self.data = data
self.dimension = len(self.data)
Я бы позвонил:
D.name()
и получил обратно self.dimension
, но я не знаю name
заранее