Передача аргументов декоратору
Я хочу передать список значений декоратору. Каждая функция, которая оформлена декоратором, передает свой список значений. Я использую decorator
библиотека питонов
Вот что я пытался -
from decorator import decorator
def dec(func, *args):
// Do something with the *args - I guess *args contains the arguments
return func()
dec = decorator(dec)
@dec(['first_name', 'last_name'])
def my_function_1():
// Do whatever needs to be done
@dec(['email', 'zip'])
def my_function_2():
// Do whatever needs to be done
Однако это не работает. Выдает ошибку - AttributeError: 'list' object has no attribute 'func_globals'
Как я могу это сделать?
1 ответ
Вы можете реализовать это без библиотеки декоратора
def custom_decorator(*args, **kwargs):
# process decorator params
def wrapper(func):
def dec(*args, **kwargs):
return func(*args, **kwargs)
return dec
return wrapper
@custom_decorator(['first_name', 'last_name'])
def my_function_1():
pass
@custom_decorator(['email', 'zip'])
def my_function_2():
pass