У меня есть декоратор, как показано нижеКак передать дополнительные аргументы в python decorator?
def myDecorator(test_func):
return callSomeWrapper(test_func)
def callSomeWrapper(test_func):
return test_func
@myDecorator
def someFunc():
print 'hello'
Я хочу, чтобы усилить этот декоратор, чтобы принять еще один аргумент, как показано ниже
def myDecorator(test_func,logIt):
if logIt:
print "Calling Function: " + test_func.__name__
return callSomeWrapper(test_func)
@myDecorator(False)
def someFunc():
print 'Hello'
Но этот код выдает ошибку,
TypeError: myDecorator() takes exactly 2 arguments (1 given)
Почему функция автоматически не передается? Как явным образом передать функцию функции декоратора?
Балка: пожалуйста, не используйте логическое значение в качестве аргумента, это не Г.Д. подход и уменьшить Кодекс readliability –
@KitHo - это логический флаг, поэтому, используя логическое значение, это правильный подход. – AKX
@KitHo - что такое «gd»? Это хорошо"? –