0
私はこれはそれがPythonが私の属性名を再マップするのはなぜですか?
['_info', '_Boo__bingo', '_x']
はなぜ__bingo
の名前が変更を取得ん印刷し
class Boo(object):
def __init__(self, x):
self._x = x
self.__bingo = 3
self._info = {'x': x, 'y':42}
def __dir__(self):
return ['x']
@property
def x(self):
return self._x
@property
def z(self):
return self._x+1
def __getattr__(self, key):
return self._info[key]
b = Boo(44)
b.__dict__.keys()
のPython
で実行する場合は?ダブルアンダースコア属性は予約されていますか?
これは*あなたがPythonに何を指示したかの正確なものです。ダブルアンダースコアを使用するアイデアはどこにありましたか?あなたはこの行動に直面しましたか?または、二重アンダースコアが「プライベート」であることを示すチュートリアルに従っていますか? –
私は重複としてマークされていても問題はありませんが、[リンクされた質問](https://stackoverflow.com/questions/7456807/python-name-mangling)はこの質問に接するだけです。私の質問に答える[その質問の答え](https://stackoverflow.com/a/34903236/44330)があります。 –
@ juanpa.arrivillaga私はこの振る舞いにつまずくと、なぜ、私の質問が何を正確に知りたかった。 (あなたのコメントは、ちょっと傲慢であるように見えます。) –