Sinnvolle Parameterübergabe...

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
deets

@lunar

wie ich gerade selbst nochmal testen musste fuer code in dem ich's brauchte: aber nur fuer die *unmittelbaren* unterklassen. Mann muss also einen kleinen traversierungs-Algorithmus bauen, wenn man alle unter-unter-*-Klassen haben will.

Allerdings mag ich __subclasses__ immer noch mehr als Meta-Klassen, mit denen man aehnliches erreichen, aber auch mehr Hirnwindungen verdrehen kann...
lunar

@deets: Stimmt, danke für die Korrektur. Allerdings steht das ja auch in der Dokumentation :)

Ich persönlich finde Lösungen, die solche speziellen Methoden verwenden, immer etwas magisch. Sie sind natürlich meistens ungeheuer praktisch, weil schnell implementiert, und daher manchmal ok, im Allgemeinen aber ziehe ich explizite Lösungen vor, auch mit Rücksicht auf andere, die möglicherweise nicht so viel Ahnung von Python haben. Das ist kein Vorwurf, ".__subclasses__()" oder gar Metaklassen sind ja nicht gerade alltägliche Werkzeuge, selbst für erfahrene Programmierer.
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

lunar hat geschrieben:Das hättest Du aber auch selbst in der Dokumentation nachlesen können …
Nicht, dass ich das nicht getan hätte. Allerdings steht in der Dokumentation an anderer Stelle auch folgendes:
"object.__dict__
A dictionary or other mapping object used to store an object’s (writable) attributes.
"

Kein Wort über das, was BlackJack sagte, dass '__dict__' nicht zwingend vorhanden sein muss.

Und da Euer Wissen oft über mein Begreifen der Dokumentation hinausgeht, frage ich lieber... :wink:

mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

@lunar: "Neue" Funktionen sind immer genau so lange exotisch, bis man sich an ihre Verwendung gewöhnt hat. Deine Argumentation könnte man auch für alle möglichen anderen Fälle nutzen. Was wohl stimmt, ist aber, dass so etwas nicht wirklich in "üblichem" Code vorkommt. Kann aber natürlich auch sein, dass bisher niemand auf die entsprechende Idee kam bzw es auf diese Art umsetzen wollte.
lunar

@snafu: Ich habe weder von „neuen Funktionen“ noch von „exotischen“ Funktionen gesprochen, sondern lediglich vom Unterschied zwischen einer expliziten Lösung und einer impliziten. Es ist eben durchaus ein Unterschied zwischen einer expliziten Beschreibung der abzufragenden Attribute, und einer impliziten Iteration über alle definierten Attribute mithilfe eines speziellen Attributs, oder zwischen einer expliziten Abbildung von Namen auf Klassen und einer implizite Iteration über alle Unterklassen einer Klasse.

Wenn Du nicht liest, was ich schreibe, kannst Du die Argumentation natürlich für alle möglichen anderen Fälle nutzen (oder eher missbrauchen). ;)
Antworten