birkenfeld hat geschrieben:poker hat geschrieben:Das ist da doch zuviel gehacke. Dann kann man auch gleich ``class`` als namespace Nutzen. Aber dan kommen die jenigen mit ihrer "reinen" Lehre.
Ich dachte, das warst du...
Hmm, OK. Im kontext zu Gerold's lätzten Post wird's mir nun klar.
Ich wüste nicht, Birkenfeld, wo ich in diesem Forum hier die "reine" Lehre verbreiten würde? Bin ja noch nicht lange hier im Forum. Wenn du diesen Topic hier meinst, dann hast du schlicht und einfach entweder meine Posts nicht richtig oder alle gelesen, oder gar verstanden.
Der reihe nach:
Sa Sep 22, 2007 00:01:
Der post der die Ansichten von OOP beschreibt, ist nicht so gemeint gewesen, das es auch meiner vollen Meinung entspricht und ich es alls meine Aufgabe betrachte das zu verbreiten. Das sollte auch aus dem sechsten Absatz und den anderen Posts hervorgegangen sein.
Nächster Punkt im Kontext zu Sa Sep 22, 2007 00:01:
Besonders diese Zitate von mir sollten dir zu denken geben:
poker hat geschrieben:
Meine Meinung resultiert nicht daraus das andere Leute mir sagen was richtig und falsch ist, sondern durch eigene Erfahrung!
poker hat geschrieben:
Letztendlich ist die "reine" Lehre nur soviel Wert bis man auf deren Grenzen stößt, das aber in dem Fall halt nicht gegeben ist. Deshalb empfehlen wir dir auch de anderen Lösungen weil sie "sauberer" und "pythonischer" sind.
Auch kannst du den anderen Posts entnehmen, das ich zu den anderen Pattern geraten habe weil **miner** Erfahrung nach es besser "funktioniert" als wenn man eine classe mit statics nutzt um damit ein Singelton zu emulieren (Einige der nachteiel habe ich ja genannt).
Dazu muss man nur noch beachten (auch in den Poststs ersichtlich) das ich Gerold's Intention erst viel zu spät mitgekriegt habe
Im ging es um ein ganz andere Problem als ich zu erst angenommen habe. Und klar, dafür sind weder Module, Borg oder Singelton zu gebrauchen.
Gerold sucht eigentlich nach einer möglichkeit in Python die äquivalent mit Rubys ``module`` ist:
http://home.vrweb.de/~juergen.katins/ru ... dules.html
Klar kann man dafür auch einfach eine Klasse nutzen, aber **und** das ist der Punkt, es ist nicht sofort ersichtlich für einen was die Intention ist. Sprich: Wenn ich (und X**N andere) sehe das einer eine Klasse als Funktionssammlung nutzt, ist **mein** erster Gedanke: "Warum keine Module!?". Sprich, die Dogmatik greift da irgendwo **doch** indirekt da man mit ``class`` was andere assoziert als der Einsatzzweck für das man es dann noch gebrauchen könnte!
In diesem Kontext (Für den Gerold und sicher viele andere auch) das haben wollen würden, wäre ein ``namespace`` Super hilfreich. Damit würde es erst gar nicht zu Ideologischen Diskussionen kommen, weil man schlicht und einfach weiß ``class`` != ``namespace`` (Auch wenn die Semantik vielleicht die gleiche bleibt!)
Im übrigen würde **ich es auch** nicht schlecht finden, weil es eine zusätzliche neue Qualität der Strukturierung mitbringt die **erstmal** frei von jeder ``class`` behafteten Ideologie/Dogmatik (nenne es wie du wilst) ist
.
Daher noch mal die Frage: Worum ging es dir bei deiner Ansage Birkenfeld? Für mich hinterlässt es eher den Nachgeschmack eines Bashings (Ohne dich jetzt der Trollerei bezichtigen zu wollen), den ich erkenne den Mehrwert deines postings nicht sondern eher ein implizierte leichte provokante Note!
mfg
EDIT:
Ich möchte gerne noch die ersten drei Absätze aus dem von mir verlinkten Link Zitieren:
Sobald Ihre Programme in Ruby größer und größer werden, werden Sie normalerweise bemerken, dass Sie wiederverwertbaren Code produzieren -- Bibliotheken mit ähnlichen Routinen, die allgemein anwendbar sind. Sie werden diesen Code in separaten Dateien abspeichern möchten, damit ihn auch andere Ruby-Programme verwenden können.
Dieser Code wird oft in Klassen organisiert sein, also werden Sie vermutlich eine Klasse (oder eine Reihe von Klassen, die in Beziehung zueinander stehen) in eine Datei stecken.
Manchmal kommt es jedoch vor, dass man Dinge gruppieren möchte, die normalerweise keine Klasse bilden.
Und ich denke damit steht Gerold nicht alleine da. In Ruby hat man das erkannt und deshalb gibt es dort ``module``. Da in Python Module anders definiert sind (Also lediglich dateien die selbst wider ein Objekt darstellen), würde da das von Gerold vorgeschlagenen ``namespace`` treffender sein -- Damit hätte man die gleiche Syntax und Semantik innerhalb eines Python Modules