class SomeDecorator:
def __init__(some_attribute):
self.some_attribute = some_attribute
def __call__(self, func):
@wraps(func)
def inner(*args, **kwargs):
if isinstance(some_attribute, list):
self.some_attribute = another_param
"do some logic"
return func(*args, **kwargs)
return inner
"____________________________________________________________"
@SomeDecorator(some_attribute = [Class1, Class2])
def my_api_function(*args, **kwargs):
"do some logic"
return "some object"
CmNsYXNzIFNvbWVEZWNvcmF0b3I6CgkKCWRlZiBfX2luaXRfXyhzb21lX2F0dHJpYnV0ZSk6CgkJc2VsZi5zb21lX2F0dHJpYnV0ZSA9IHNvbWVfYXR0cmlidXRlCgkJCglkZWYgX19jYWxsX18oc2VsZiwgZnVuYyk6CgkJQHdyYXBzKGZ1bmMpCgkJZGVmIGlubmVyKCphcmdzLCAqKmt3YXJncyk6CgkJCWlmIGlzaW5zdGFuY2Uoc29tZV9hdHRyaWJ1dGUsIGxpc3QpOgoJCQkJc2VsZi5zb21lX2F0dHJpYnV0ZSA9IGFub3RoZXJfcGFyYW0KCQkJImRvIHNvbWUgbG9naWMiCgkJCQoJCQlyZXR1cm4gZnVuYygqYXJncywgKiprd2FyZ3MpCgkJcmV0dXJuIGlubmVyCgkJCiJfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18iCgpAU29tZURlY29yYXRvcihzb21lX2F0dHJpYnV0ZSA9IFtDbGFzczEsIENsYXNzMl0pCmRlZiBteV9hcGlfZnVuY3Rpb24oKmFyZ3MsICoqa3dhcmdzKToKCSJkbyBzb21lIGxvZ2ljIgoJcmV0dXJuICJzb21lIG9iamVjdCI=