読者です 読者をやめる 読者になる 読者になる

へっぽこびんぼう野郎のnewbie日記

けろけーろ(´・ω・`)!

Pythonのデコレータであそんでみた

Python

Enumを使っていることからお察しの通り環境は3.4です。

f:id:haruharu1:20150620122254p:plain

ソースコードを動的に扱えるようになるのが最近の課題。

ついき

ちなみに、furikake_dict、関数のなかにありますが、これはあくまで「こういうこともできるよ」であって、
この書き方はあまり良くないです。

なぜなら、この関数の中でしか、furikake_dictを呼べないからです。
inspectモジュールや、ガベコレから呼び直しなどをすれば呼べますが、そんな黒魔術は使わないほうがいいです。

おとなしくconst.pyなどをつくって、そこにFURIKAKE_DICTをつくって、そこから呼び出してあげたほうが、のちのち使いたくなったときに役に立つでしょう。
別に呼び出す予定がなくても、処理の途中で中身を変更したくなったときに、
関数の中だと不可能になるので、
外に出してあげたほうがいいでしょう。

セックスとおなじだ……!

このfurikake_dictのデータは、もっと増えてきたら、データベースを使ったほうがより効果的な管理ができるでしょう。

特に、二次元・三次元的になった場合。

ついついき

関数の中では、いつも定義してはいけないわけではありません。
たとえば、その関数で状態を変更するために使い、他の場所からアクセスされたくないものは、関数の中で定義したほうがいいです。

まぁそれがクロージャなんですけどね。

『少しでも他の場所からアクセスされそうな可能性を持つもの(基本的にこれは何らかのデータ)』
であれば、外に出した方がいいような気がします。

『のちのちアクセスされそうかどうか』で中出しするか外出しするよりも
『他からアクセスされたくないかどうか』で考えたほうが、一貫性ある気がします。


完全に、他の男とセックスできないように、中出ししてやるてきなノリですね。