Mercurialを読む(Pythonの慣例を知る)
どうやらMercurialで用いるclass名は小文字みたいだ.
ジャバジャバしてきた私には,大文字で始まってないと気持ち悪い.
そして_で始まる関数名とそうでないのがある.internal useというところか.
Rubyではあるまいし.
if feature and exceptions: return feature not in exceptions
こういう表記も意味がわからん.
if not path and default is not None: path = self.config('paths', default) return path or loc
セマンティクスが違うものを返す点もよくわからん.名前からしてpathは文字列.locは番号じゃないのか?
@property def _end_headers(self): return self._eol * 2
うお.ここだけアノテーション(?)ついてる.
__all__ = ['HTTPConnection', 'HTTPResponse']
なんだこりゃ.__slots__のようにみえるけど,グローバル変数__all__てのがあるみたいだ.
などなど.疑問がいっぱいです♪
追記:マニュアル(http://www.python.jp/doc/2.4/ref/import.html)より.
モジュールで 公開されている名前 (public names) は、 モジュールの名前空間内にある __all__ という名前の変数 を調べて決定します; __all__ が定義されている場合、 __all__ はモジュールで定義されていたり、import されている ような名前の文字列からなるシーケンスでなければなりません。 __all__ 内にある名前は、全て公開された名前であり、 実在するものとみなされます。 __all__ が定義されていない場合、モジュールの名前空間に 見つかった名前で、アンダースコア文字 ("_") で始まっていない 全ての名前が公開された名前になります。 __all__ には、公開されている API 全てを入れなければなりません。 __all__ には、(モジュール内で import されて使われている ライブラリモジュールのように) API を構成しない要素を意に反して 公開してしまうのを避けるという意図があります。
これは便利だ!!次回はコレを使うぞ.