
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello() -> str:
return 'Hello world from Flask!'
app.run()
関数を
URL
でデコレートする
3
行目のコードは、新しい
Python
構文のデコレータを使っています。関数
デコレータは、既存の関数の振る舞いをその関数のコードを変更せずに追加
します(つまり、関数がデコレートされます)。
この最後の文を数回読むとよいでしょう。
基本的には、デコレータは必要に応じて既存のコードを追加の振る舞いで
補強できます。デコレータは関数だけでなくクラスにも適用できますが、主
に関数に適用するので、多くの
Python
プログラマは関数デコレータと呼び
ます。
このコードの関数デコレータを調べてみましょう。関数デコレータは
@
記号から始まるので簡単に探すことができます。
Python
のデコレータ構文は、
Java
のアノテーション構文と
関数型プログラミングの世界
からアイデアを得たものです。
これが関数デコレータ。
関数デコレータは
(すべてのデコレータ
と同様に)
先頭が
@
記号です。
URL
関数デコレータを作成することもできますが(
10
章で取り上げます)、ここでは
関数デコレータを使うことだけに集中しましょう。
Python
には多くのデコレータ
が組み込まれており、多数のサードパーティモジュール(
Flask
など)が特定の目的
を持ったデコレータを用意しています