PEP 8 -- Style Guide for Python Codeに
非公開なメソッドとインスタンス変数にのみ、先頭にアンダースコアを1つ使って命名する。と書かれている
サブクラスとの名前の衝突を避けるには、先頭にアンダースコアを2つ付けることで、Python の名前修飾ルールが行われる。
変数名などの先頭にアンダースコアを2つ付けると
privateのようになりますが消えたわけでない
class ABC: def __init__(self): self._x = 1 self.__y = 2 abc = ABC() print "_x =", abc._x print "__y =", abc._ABC__y print dir(abc)
実行すると
_x = 1 __y = 2 ['_ABC__y', '__doc__', '__init__', '__module__', '_x']__変数名 が _クラス名__変数名
と変化しているだけ
詳細はドキュメントで
0 件のコメント:
コメントを投稿