Pythonにアクセス修飾子はない 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_