Ich habe es überprüft, weil es ein paar Dinge gab
python
# -*- coding: utf-8 -*-
class Hoge(object):
def __init__(self):
self.__foo = 'foo'
self._bar = 'bar'
hoge = Hoge()
# AttributeError: 'Hoge' object has no attribute '__foo'
# print hoge.__foo
print hoge._bar
print hoge._Hoge__foo
print hoge.__dict__
Ausführungsergebnis
bar foo {'_Hoge__foo': 'foo', '_bar': 'bar'}
Irgendwie ist Hoge .__ foo ein privates Eigentum. Es wird gesagt, dass sich die Eigenschaft mit zwei Unscos wie privat verhält, da das Mandaring von Namen durchgeführt wird.
Es scheint, dass das Ausblenden von Variablen nicht der Hauptzweck ist, also werde ich es vorerst in meinen Kopf setzen.
Beachten Sie, dass die Schwierigkeitsregeln in erster Linie Unfälle verhindern sollen. Es ist weiterhin möglich, auf überzeugende Weise auf Variablen zuzugreifen und diese zu ändern, die als privat gelten. ist. Diese Spezifikation ist sogar in speziellen Situationen wie Debuggern nützlich.
http://docs.python.jp/2/tutorial/classes.html#tut-private
Recommended Posts