classmethod)pythonnd2readerのソースコードを見ていたら@staticmethodが散見された。文法を知らなかったので調べた。デコレータの定義について関数fに対して、デコレータを使うとfという表記でg(f)を呼べるようになる。デコレータ用の便利関数を書いておけばユーザは自分の関数を修飾した関数を作ることが出来る。2回目以降は何も表示されないg(1)とは言ったものの関数の名前(f.__name__)がdecorated_funcに変わってしまっている。そこで@functools.wrapsをつける。fib(n-2)とすることが出来る。setter、getter、propertypropertyはAPIの内部実装を隠してメンバ変数のようにアクセスさせるのに便利そう。staticmethod、classmethodstaticmethod、classmethodどちらもクラス、インスタンスの両方から呼び出せる。classmethodは第1引数に暗黙的にクラスを受け取るが、staticmethodは明示的な引数のみ。使うタイミングがはっきりしないが、selfを取らないことを明確に出来ること、メンバ関数なので継承できることがありそう。インスタンスからも呼ぶことが出来る。柔軟に色々やろうと言う文脈になるとPythonによる黒魔術入門が参考になりそう(メタプログラミングとは?)。Lippmanの著書。C++コンパイ...2018-06-17低体温療法のデータいじり(その2)低体温療法続き。メモはてなブログをはじめよう!kuyataさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。