created: 2017/0629;
リスト内包表示については、例えば、以下を参照。
先生が紹介していた以下のコードは、分かりやすいぞ。
def dec(func):
def _dec():
print('decorator!')
func()
return _dec
@dec
def function():
print('function!')
function()
これは、@マークを使わなくても、以下のように書ける。
def dec(func):
def _dec():
print('decorator!')
func()
return _dec
def function():
print('function!')
f = dec(function)
f()
さらに、蛇足ぽいけど、以下も。
def dec(func):
def _dec():
print('decorator!')
func()
return _dec
def function():
print('function!')
dec(function)()
引数を取る事例。引数を表示する関数を、偶数ならerrorと表示。
def check(function):
def dec(x):
if x % 2 == 0:
print('error')
else:
print(x)
return dec
@check
def func(x):
print(x)
func(9)
func(8)