Objektvariablen in __init__ werden nicht gesetzt.

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.
Benutzeravatar
hendrikS
User
Beiträge: 420
Registriert: Mittwoch 24. Dezember 2008, 22:44
Wohnort: Leipzig

EyDu hat geschrieben:Ja, aber wo ist der Vorteil gegenüber ein Konvention?
Ja Konventionen lassen sich nicht kompielieren oder interpretieren. Es sei denn man nutzt lint oder so was. Hört sich auch so an als wären alle perfekte Programmierer. Woher kommen dann all die Segmentation faults, runtime errors, Dr. Watsons etc. Weil alle ja so perfekt programmieren und einen so richtig super OO Ansatz haben. pr pu prot unterstützt durchaus auch die defensive Programmierung.
Na ja. Ich bin jetzt der Diskussion doch ein bisschen müde. Wie Leonidas festgestellt hat, funktioniert es ja, und wahrscheinlich habe ich von dem Thema ja auch gar keine Ahnung.
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Die Segfaults und sowas kenne ich aber eher von Sprachen wie C...

Wenn Python auf ein unerwartetes Objekt trifft, dann wirft es dir ne Exception. Den Traceback kann man zurückverfolgen und sieht dann, woran es hapert.

Und wenn ein Skript zwar durchläuft, aber komische Ergebnisse liefert, weil der Programmierer an den internen Abläufen rumgefummelt hat, dann muss der Programmierer auch mit sowas rechnen. Wie gerade schon jemand sagte: Wenn ich die Konvention zu der mit ``_`` gekennzeichneten Objekte missachte, sollte ich wissen, was ich tue und unerwartete Resultate einkalkulieren.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

hendrikS hat geschrieben: Woher kommen dann all die Segmentation faults, runtime errors, Dr. Watsons etc. Weil alle ja so perfekt programmieren und einen so richtig super OO Ansatz haben.
Das illustriert deinen Punkt irgendwie nicht, denn das sind entweder C-Programme, die kein private haben, aber andererseits auch sowieso keine OOP-Unterstützung oder C++-Programme, die durchaus private haben und wie du ganz richtig feststellst, trotzdem crashen.
Zuletzt geändert von Leonidas am Mittwoch 23. September 2009, 19:42, insgesamt 1-mal geändert.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
BlackJack

@hendrikS: Wenn ``private`` vor so etwas schützt, dann dürfte es in Sprachen die den Zugriffschutz kennen ja keine Speicherzugriffsverletzungen oder Laufzeitfehler geben. Sieht man aber bei C++ oder Java trotzdem. Im Gegenzug geht bei Python aber anscheinend die Welt ohne ``private`` auch nicht unter.
Antworten