python3の基礎構文の勉強が終わったのでbottleというフレームワークの勉強をはじめました。
しかし、デコレータというのが分からなくて困っています。
@hello みたいなやつです。
デコレーターは何のためにあるんですか?また、どんな機能なんですか?
フレームワークの勉強に入るのは早すぎたでしょうか、、、

回答1件
あなたの回答
tips
プレビュー
Bottleは、PythonのWebサーバです。1つのPythonファイルで構成されており、非常に軽量。Web APIの作成や導入が簡単で、DjangoやFlaskに比べ使いやすくシンプルなことが特徴です。
Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。
Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。
Bottleは、PythonのWebサーバです。1つのPythonファイルで構成されており、非常に軽量。Web APIの作成や導入が簡単で、DjangoやFlaskに比べ使いやすくシンプルなことが特徴です。
Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。
Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。
0グッド
0クリップ
投稿2017/05/20 09:40
python3の基礎構文の勉強が終わったのでbottleというフレームワークの勉強をはじめました。
しかし、デコレータというのが分からなくて困っています。
@hello みたいなやつです。
デコレーターは何のためにあるんですか?また、どんな機能なんですか?
フレームワークの勉強に入るのは早すぎたでしょうか、、、
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答1件
0
ベストアンサー
pythonフレームワークのDjango扱ってる者です^^
デコレータは、最初は、おまじないとして、関数に機能追加できるおまじないと考えると良いと思います。
下記に理解しやすいと個人的に思う実践的な例をあげますね^^
例えばshow_mypageという自己紹介ページを表示する関数をつくったとしますね、
python
1 2def show_mypage(): 3 (mypageを表示する関数の操作) 4
だけだと、単にdef show_mypageが呼び出されると、自己紹介ページを表示するだけです。
ここでログインがあるかなしかチェックして、ログインしている人だけが関数の結果を見れて、ログインしてない人が関数を呼び出す(自己紹介ページを見ようとする)と、エラーにするという関数でneed_loginというものがあるとします(このような関数は自分で作る人もいますが、大抵は他の人が作ったもの(フレームワークに準備されているものなど)を使います)
python
1 2def need_login(): 3 (関数を動作させようとすると、ログインしてるかどうか確認してログインしている(True)なら関数を稼働させる、ログインしていない(False)ならエラーを表示する機能) 4
とします。
このとき、
python
1from (need_loginの書いたファイルのある場所) import need_login 2 3@need_login 4def show_mypage(): 5 (mypageを表示する関数の操作) 6
と書くと、def show_mypage():に、def need_login():の機能が追加された!という状態になり、
今までデコレータなしだと
単にdef show_mypageが呼び出されると、自己紹介ページを表示するだけ だったのが、
デコレータありになると、自己紹介ページを表示する前に、ログインしてるかどうか確認してログインしている(True)なら自己紹介ページを表示、ログインしていない(False)ならエラーを表示する
という仕組みをつくることができるというわけです。
この構造がわかれば、文法的にどうなっているかは、例えば下記のリンクの記事など見ていただければ理解しやすいかなと思います。
Python - デコレータ
http://www17.atpages.jp/~lambda7/py/decorator.html
ではもし参考になれば幸いです^^
投稿2017/05/20 11:14
総合スコア234
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/20 11:57
2017/05/20 15:17