Versteh ich da was falsch?
Verfasst: Samstag 18. November 2006, 21:34
Hallo zusammen,
Weigend erklärt in Python GE-PACKT S. 226 (hab nicht die aktuellste Ausgabe)
Meine Frage, hat er folgendes tatsächlich übersehen, oder weil die Art dieses Zugriffs der sehr wohl möglich ist, semantisch ganz anders aufzufassen ist, zu Recht weggelassen:
Liebe Grüße
rolgal_reloaded
Weigend erklärt in Python GE-PACKT S. 226 (hab nicht die aktuellste Ausgabe)
Er führt dann ein Codebeispiel an bei dem ein Zugriff mit objekt.__attribut natürlich auch versagt.Stark private Attribute haben Namen, die mit zwei Unterstrichen beginnen.......Es ist nur möglich, innerhalb einer Methode eines Objekts dieser Klasse auf ein solches Attribut zugreifen.........
Meine Frage, hat er folgendes tatsächlich übersehen, oder weil die Art dieses Zugriffs der sehr wohl möglich ist, semantisch ganz anders aufzufassen ist, zu Recht weggelassen:
Code: Alles auswählen
>>> class Privat:
def __init__(self):
self.__ganzprivat=1
self._privat=2
self.oeffentlich=3
>>> privat=Privat()
>>> privat.oeffentlich
3
>>> privat._privat
2
>>> privat.__ganzprivat # so gehts freilich nicht
Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
privat.__ganzprivat
AttributeError: Privat instance has no attribute '__ganzprivat'
>>> privat._Privat__ganzprivat # so gehts natürlich
1
>>> privat._Privat__ganzprivat=4 # und einen neuen Wert setzen geht auch
>>> privat._Privat__ganzprivat
4
rolgal_reloaded