def empty(f):
return None
@empty
def func(x, y):
return x + y
print func # напечатает: None
Подскажите как работает данный код…
P.S. наверно читаю невнимательно….
def empty(f):
return None
@empty
def func(x, y):
return x + y
print func # напечатает: None
Простой пример (декорирующая функция возвращает None, в итоге func тоже оказывается равным None)Вы это осмыслили?
Daevaornempty() возвращает None понимаю. Но не понимаю, почему func оказывается равным None! Почему?
Простой пример (декорирующая функция возвращает None, в итоге func тоже оказывается равным None)
Вы это осмыслили?
def empty(f):
return None
def func(x, y):
return x + y
func = empty(func)
print func
def func(x, y):
return x + y
j2aСпасибо за ссылочку! Кажется начинаю догонять:
см PEP 318
@dec2
@dec1
def func(arg1, arg2, ...):
pass
def func(arg1, arg2, ...):
pass
func = dec2(dec1(func))
qmanне только результатов. Он создает “обертку” вокруг функции, так что можно модифицировать входные и выходные значение, проверять их, делать какие-либо операции в зависимости от действий и прочее.
то есть декоратор создает правила преобразования (из примера dec2 и dec1) результатов функции func?
@dec1
def func(arg1, arg2, ...):
pass
qmanчтобы ответить, нужно видеть код декоратора, потому что он может менять как входные, так и выходные.
извините за тупизмdec1 модифицирует входные или выходные значения функции func?@dec1
def func(arg1, arg2, ...):
pass