1
def myfunc():
print(" myfunc() called.")
return 'ok'
'ok'は関数の戻り値です。関数の戻り値が他の関数によって修飾された後に失われる
>>> myfunc()
myfunc() called.
'ok'
他の機能でこれを飾るようになりました。 decorate関数です。
def deco(func):
def _deco():
print("before myfunc() called.")
func()
print(" after myfunc() called.")
return _deco
デコ機能でmyfuncをデコレートします。
@deco
def myfunc():
print(" myfunc() called.")
return 'ok'
>>> myfunc()
before myfunc() called.
myfunc() called.
after myfunc() called.
結果が次のようなものではないのはなぜですか?
>>> myfunc()
before myfunc() called.
myfunc() called.
'ok'
after myfunc() called.