Можно ли использовать разные декораторы в зависимости от аргументов функции в python?
Например, если функция получает на вход *args, использовать один декоратор, а в случае передачи именованных параметров а=1, с=2 - другой Вот я тут использую один декоратор в обоих случаях, но теоретически можно ли определить какой декоратор исползовать?
def fdecorator2(func):
def inner(*args, **kwargs):
tup = args
dic = kwargs
res = func(*args, **kwargs)
if tup == ():
print('num_wrapper_positional is used: ',dic)
else:
print('num_wrapper_named is used: ',tup)
return int(res)
return inner
@fdecorator2
def test(a1=0, a2=0):
return a1 + a2
Ответы (1 шт):
Автор решения: vp_arth
→ Ссылка
Что-то вроде этого?
if tup == ():
res = num_wrapper_positional(func)(*args, **kwargs);
else:
res = num_wrapper_named(func)(*args, **kwargs);