Seite 2 von 2
Verfasst: Dienstag 14. April 2009, 13:59
von audax
Du rufst mit "x.op(2)' immer die Methode "op" des Objektes "x" mit dem
Parameter 2 auf. Nicht deine Absicht, oder?
So könnte man das machen:
http://paste.pocoo.org/show/112480/
Verfasst: Dienstag 14. April 2009, 14:24
von Goswin
Vielen Dank erstmals!
Ich bleibe am Ball und versuche, eure Vorschläge zu verstehen, was allerdings eine Weile dauern wird.
Verfasst: Dienstag 14. April 2009, 14:52
von EyDu
Vielleicht als kleine Hilfe: Wenn du auf ein Attribut mittels
zugreifst, dann darfst du dir "attr" nicht als eine Variable vorstellen, denn "attr" ist hier ein Name. Andernfalls könntest du (unbeabsichtigt) sehr seltsame Effekte erzeugen.
Verfasst: Dienstag 14. April 2009, 21:00
von Dauerbaustelle
Zum Thema: Gibt es eine Möglichkeit, dem Interpreter mitzuteilen, er möge doch für jede Operation den Wert aus einer Funktion nehmen? Dann müsste man für solche Sonderklassen nicht jede Operation implementieren.
Verfasst: Dienstag 14. April 2009, 22:20
von EyDu
Klar: "__getattr__", bzw. "__getattribute__" oder mittels Vererbung und natürlich Metaklassen.
Verfasst: Dienstag 14. April 2009, 23:25
von str1442
Sofern die Funktionen entsprechend kompatibel sind, kannst du auch im Namensraum der Klasse jeder gewünschten "magic method" mittels einfacher Zuweisung die Funktion zuteilen. Das erste Attribut wird dann als "self" interpretiert. Funktioniert natürlich nicht bei zb Funktionen aus dem Operator Modul, aber es kommt natürlich auf deine Funktion (oder eine entsprechende Methode der Klasse) an.
Verfasst: Mittwoch 15. April 2009, 01:31
von Dauerbaustelle
EyDu hat geschrieben:Klar: "__getattr__", bzw. "__getattribute__" oder mittels Vererbung und natürlich Metaklassen.
Wie soll das aussehen?
Verfasst: Mittwoch 15. April 2009, 10:27
von EyDu
Hier im Forum und über Google lassen sich dutzende Beispiele finden.