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

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

とか、もっと解りやすい書き方もあるし。