はてブ02019.11.22この記事は約6分で読めます。超初級を脱出したい(自分も同様w)__iter__って何?iterableとiteratorって何が違うのって人?連載項目iteratorの理解を深めるgeneratorの理解を深めるdecoratorの理解を深める特殊メソッドに慣れるポリモーフィズムに慣れる目標は一旦終わった段階で以下のようなステータスになっていることです。・特殊メソッドやプライベート変数とうに少し慣れる(呼び出しの概念が少し理解できた感じ)・ポリモーフィズムを自分で作れる感じ(ただし、非常に簡単なやつ)decoratorを理解すると何ができる?今回の記事のゴール正直python単体において、decoratorは個人的にはそこまで重きをおかなくてもいいのかなぁと理解しています。今後Web開発をしていく際には、decoratorは非常に使用頻度が高いので、その将来を見据えて理解を深めていきたいと思います。decoratorってそもそもなんなの?decoratorとは、いわゆる装飾です。・・・というわけにはいかないですよね。いうと、”ある関数を別の関数で装飾することができる”ということなんですが、言葉で書いてもよくわからないと思います。サンプルに1個デコレータを作ってみましょう。decoratorを作ってみるそもそもdecorator自体がどう表現されるかというと、@+関数名となります。以下の場合は、@decoratorがtest関数にdecorator関数を装飾している、ということになります。test()実際どういう形で表示されるかというと、以下のようになります。End--test関数は”test関数部分”という物を表示するだけです。それが、decorator関数にデコレートされたことにより、decorator関数が先に実行され、decorator関数ないのfunc引数で呼び出されて、test関数が実行されています。実はこれって、デコレータを利用しなくても、以下のような形でも同様の結果になります。a()先ほどと同様の結果が出ますが、やっていることといえば、いつもみている関数を関数で呼び出しているだけです。これが意味することは何なんでしょうか?少し別言語を触ったことがある方ならご存知の、いわゆるシンタックスシュガー(糖衣構文)です。デコレータの本質は、シンタックスシュガーでしかないと言われる所以です。デコレータの使い道デコレータの用途は、大きく分けて「ラッピング」と「マーキング」の二つがあると言われています。これまでみてきたのは、ラッピング(wrapperを使ってラップさせるからラッピング)でした。次は、マーキングの部分もみていきます。マーキングとしてのデコレータマーキングが何を意味しているかから、始めましょう。デコレータを利用したマーキングとは、デコレータが受け取ったオブジェクトをそのまま一旦返して(ここでは実行されてるけど、保存されるだけ)、受け取ったオブジェクトを何処かに記録しておいて、それを後から利用することになる。いうことで、言葉にするより作成した方が早いので、実際作ってみてみましょう。main()morning/noon/evening/nightそれぞれが、print(“関数名”)という処理を行いますが、それ自体がすぐさま実行されているわけではなく、全てstockに一旦記録する機能を実現しているのが、マーキングとしてのdecoratorになります。実行結果をみていきます。morning/noon/evening/nightが格納されているのがわかります。2行目で、1つ目を関数として呼び出すと、そのタイミングでmorningと表示されています。これが、一旦オブジェクトとして記録した物を後から呼び出しているという意味になります。まとめデコレータについては、まだまだ引数取るパターン、メソッドで作成するパターン、クラスに付与するパターンなど、山ほど利用ケースはあります。generatorなどと併用することも可能です。そこまでは1回では書ききれないので、ドキュメントや検索してもらえればなと思います。最後に一言だけ言えるのは、デコレータはあくまでもシンタックスシュガーであり、それ以上でもそれ以下でもありません。@app.route(flask)など色々そのフレームワーク上で動作するデコレータがあるので、ぜひデコレータが何をしているかをイメージできるようになるといいなぁと個人的には思います。python超初級脱出シリーズpythonの入門編を終えた後に、supper_beginnerクラスを脱出するためのシリーズです。unitテストやフレームワークの使い方に行く前に、少しpythonの知識を深めたい人用の記事です。はてブ0ks_Accountingをフォローするks_Accounting経営管理deプログラミング関連記事flaskflaskでアプリを作る際のメモ〜configの初期設定値~flaskでapp作った際の、configの初期値を確認するための記事です。app.config等で日頃config設定変更されていると思いますが、そもそも何が設定されているのかを把握するためにテストしてみました。v4を使ってスプレッドシートにアクセスしてみましょう。スプレッドシートのデータの読み書きや、そもそも前提となる認証のパス方法などを説明していきます。スクレイピングで取得したデータをスプレッドシートにアップできるようになります。Pythonpython練習問題〜シリーズ1第6回、レベル超初級の初級6〜python3練習問題、ポーカの手役判定ロジックをpythonの練習題材にしています。playerクラスを作って、2人の仮想プレーヤーに勝負させてみました。Pythonpython/selenium/bs4でハローワークの求人情報を取得してメールしてみるpython/seleniumでハローワークのデータを取得して自動メールを送る方法の解説です。beautifulsoup4を利用してデータ解析もしながら、smtplibを利用したメール送付の方法説明も行います。API関連pythonで会計ソフトfreeeのAPIを利用してみるfreeeAPIをローカルのpython環境から利用する方法です。認可コードフローの利用して、認可コード取得・アクセストークン取得・事業所一覧の取得まで行います。_(‘text’)についてpython/djangoで_('text')というコードをモデル内に見つけることがあります。これは一体なんでしょうか、という個人的疑問を解決したので、メモ記事です。コメントをキャンセルメールアドレスが公開されることはありません。htmlメールの設定とトリガー設定)〜2019.04.242020.01.23。