我正在尝试装饰一些类方法,但我不知道它们的名称。装饰的类可以获取一些参数,装饰器函数也可以;但是我遇到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()
我希望内部类内部使用装饰器参数进行验证,以了解装饰类方法是否可以执行。
编辑:我正在使用Django +石墨烯+ JWT。 Graphene允许在变异中使用django模型形式,但是JWT仅修饰功能(变异和形式模型形式都是类)。我正在尝试使用权限来装饰变异类。我希望清楚。