Pythonのデコレータは、関数の前後に処理を追加するための強力なツールです。デコレータは、関数の機能を変更したり、追加したりするための関数です。
def decorator(func):
def wrapper(*args, **kw):
print(func.__name__ + '関数 実行')
return func(*args, **kw) # 戻り値を返す
return wrapper
上記のコードは、デコレータの基本的な形式を示しています。ここで、decorator
はデコレータ関数、func
はデコレートされる関数、wrapper
はfunc
をラップする内部関数です。
デコレータは、関数の前後に何か処理を追加したいときによく使われます。例えば、関数の実行時間を計測したり、ログを出力したり、エラーハンドリングを行ったりする場合などです。
また、Pythonではすべてがオブジェクトであり、関数もオブジェクトです。これは、関数を変数に代入したり、他の関数の引数として渡したり、関数から返り値として返したりすることが可能であることを意味します。
def hello(name: str = 'sei'):
return 'hello, ' + name
greet = hello
print('print hello:', hello)
print('print hello():', hello())
print('print greet', greet)
print('print greet()', greet())
上記のコードは、関数を変数に代入する例を示しています。ここで、greet = hello
を実行すると、greet
は関数hello
を指すようになります。
以上のように、Pythonのデコレータと変数の理解は、Pythonの強力な機能を活用するための重要なステップです。