У меня есть 2 класса, используемых в качестве декораторов
class A:
"""This is a decorator"""
pass
class B:
"""This is also a decorator"""
pass
И третий класс, который я хотел бы вернуть либо A, либо либо B
class C:
def a(func):
return A
def b(func):
return B
@C.a
def some_func(some_arg):
pass
@C.b
def other_func(some_arg):
pass
Возможно ли такое,и если да, то как это реализовать?
ОБНОВЛЕНИЕ: Проблема в том, что при создании декоратора ' вызов ' выполняется во время создания. Я хочу получить доступ к некоторым конфигурациям, которые будут установлены позже. Поэтому я в основном пытаюсь вернуть упаковщик, который возвращает упаковщик.
class C:
def __call__(func):
def wrapper(*args, **kwargs):
# Do something with global data
return func(*args, **kwargs)
return wrapper