5
Tôi sẽ thêm phương thức vào tên chức năng động class
động ... cũng sẽ được truyền động.thêm phương thức vào một lớp động với trang trí
Tôi có thể làm như thế nào? Tôi cố gắng theo cách
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
này nhưng nếu tôi làm:
print(aClass.__dict__)
tôi có
'setter': <bound method onInstance.flam of <__main__.onInstance object at 0x522270>>
thay vì var
: .....
tôi có lớp học này :
class D:
def __init__(self, data):
self.data = data
self.dimension = len(self.data)
tôi sẽ gọi:
D.name()
và có trở lại self.dimension
nhưng tôi không biết name
trước
Hiện một ví dụ về mã mà bạn hy vọng sẽ sử dụng để đính kèm phương pháp này đến lớp. Tôi không có ý tưởng làm thế nào bạn có thể có một phương pháp mà bạn muốn đính kèm, nhưng không có bất kỳ loại tên cho nó. Tôi cũng không có ý tưởng làm thế nào bạn mong đợi phương pháp để làm cho bất kỳ ý nghĩa để được gắn vào lớp, nếu lớp học không được thiết kế với phương pháp đó ở nơi đầu tiên. –
đã cập nhật mô tả – fege