Protected und Private

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Jankie
User
Beiträge: 592
Registriert: Mittwoch 26. September 2018, 14:06

Hallo,

wir hatten gestern in der Berufsschule das Thema Kapselung in Python. In diesem Zusammenhang hat uns der Lehrer die Möglichkeit von __pivate gezeigt.

Nun lese ich aber schon ein paar Monate hier im Forum mit und habe mitbekommen, dass es das so nicht in Python gibt und eigentlich nur verwendet wird um Namenskollisionen bei Mehrfachvererbung zu vermeiden. Mit der Suchfunktion bin ich dann auf diesen Code gestoßen:

Code: Alles auswählen

class Unsinn:
    def __init__(self):
        self.__so_geheim = 1000

u = Unsinn()
print(u._Unsinn__so_geheim)


Kann mir bitte jemand erklären wieso damit der Zugriff gelingt, also was die Logik dahinter ist?

#edit:

da mit

Code: Alles auswählen

print(u.__so_geheim)
ja nicht darauf zugegriffen werden kann.

Mit freundlichen Grüßen

Jankie
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

Einfach in der Dokumentation nachlesen:
https://docs.python.org/3.7/tutorial/cl ... -variables
Jankie
User
Beiträge: 592
Registriert: Mittwoch 26. September 2018, 14:06

Danke.
Antworten