Seite 2 von 2
Verfasst: Mittwoch 23. September 2009, 19:08
von hendrikS
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.
Verfasst: Mittwoch 23. September 2009, 19:19
von snafu
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.
Verfasst: Mittwoch 23. September 2009, 19:39
von Leonidas
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.
Verfasst: Mittwoch 23. September 2009, 19:40
von 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.