Я пытаюсь украсить некоторые методы класса, но я не знаю их имен. Декорированный класс может получить несколько параметров, а также функцию декоратора;но я получаю maximum recursion depth exceed
ошибку и параметры декоратора не были доступны при определении внутреннего класса.
def decorator(decorator_param):
def wrapper(cls):
class InnerClass:
def __init__(self, *args, **kwargs):
self.oInstance = cls(*args, **kwargs)
def __getattribute__(self, name):
# decorator validations...
# here I need the decorator_param ¯\_(ツ)_/¯
return self.oInstance.__getattribute__(name)
return InnerClass
return wrapper
@decorator("a decorator param")
class DecoratedClass():
def __init__(self, name):
self.name = name
def say_hello(self):
print("Hello %s" % self.name)
ie = DecoratedClass(name="cristhiam")
ie.say_hello()
Я ожидаю, что использование параметров декоратора внутри внутреннего класса выполнит некоторые проверки, если метод декорированного класса может выполняться или нет.