Я хочу применить декоратор к каждому методу в классе. У меня нет исходного кода класса, поэтому я не могу напрямую применить декоратор. Я хочу вызвать некоторую функцию, которая принимает класс и добавляет декораторы.изменить класс __dict__ (mappingproxy) в python
Но проблема в том, что testclass.__dict__
является объектом mappingproxy
и не поддерживает никаких присвоений или изменений, по крайней мере, по крайней мере. Итак, вопрос в том, как избежать этого ограничения раздражения и применить декоратор?
Вот код неудачной попытки:
class qwer:
def test(self):
print('test')
def decor(func):
def w(*args, **named_args):
print('decor')
func(*args, **named_args)
return w
qwer.__dict__['test'] = decor(qwer.__dict__['test'])
Ошибка:
TypeError: 'mappingproxy' object does not support item assignment
AttributeError: атрибут readonly – Tcll