Klassen __(Private) - Nicht ok?

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
Crazed
User
Beiträge: 171
Registriert: Sonntag 18. Mai 2008, 11:44

Hallo,
Ich bin einen meiner Threads durchgegangen und jemand hatte mich darauf aufmerksam gemacht oder vielmehr gefragt warum ich in einer Klasse etwas privat mache z.b:

Code: Alles auswählen

self.__serverlist = {'1':'http://www.google.de/'}
Jetzt habe ich mir Gedanken gemacht. In der offiziellen Python Dokumentation steht ja das es so geht, aber nicht von der Sprache erzwungen wird. Wie soll ich es denn machen - gibt es irgendwelche Vor u.o Nachteile?

MfG,
CracKPod
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Das Thema hatten wir in der letzten Zeit (max. 3 Wochen zurück) schon mehrfach - z.T. sehr ausführlich. Such doch mal im Forum danach.
lunar

Die Zusammenfassung für Faule ;)

Doppelte Unterstriche nutzt man nur, wenn man Namenskollisionen bei Mehrfachvererbung befürchtet. Da das bei sauberem Design nicht vorkommen sollte, sind doppelte Unterstriche eigentlich immer unangebracht ;)

Einfache Unterstriche sind für private Attribute gedacht, die nicht von außen verwendet werden sollen. Für dein Beispiel wäre das die richtige Möglichkeit.

Allerdings musst du dir auch immer Gedanken machen, ob es wirklich nötig ist, etwas privat zu machen. Eine Liste aller Server könnte auf für Nutzer dieser Klasse interessant sein, wenn es beispielsweise gilt, ein Menü in einer GUI anzuzeigen ;)
Antworten