Re: 噛めば噛むほどおいしくなるクロージャの話
Python Hack : 噛めば噛むほどおいしくなるクロージャの話
私だったらこうは書かないかなぁ。
- if のオーバーヘッドなんて気にするもんじゃない。
- 変数名が '_' ではじまるグローバル変数に「誰かアクセスしちゃうかも」っていうのは、ちょっと神経質。
- この手のデータは、起動時にロードしておくのが吉。thread-safeにもなるし。
- コードを見た人に、「lambda 使いたいだけちゃうんか」と思われる危険がある。
どうしてもやりたければ、もっと素直に
class ConfigReader: def get(self): try: return self._config except AttrributeError: self._config = read_config() return self._config get = ConfigReader().get
とか、もっと解りやすい書き方もあるし。