Global das Verhalten aller Klasseninstanzen verändern

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.
alban
User
Beiträge: 8
Registriert: Mittwoch 19. April 2006, 23:44

Global das Verhalten aller Klasseninstanzen verändern

Beitragvon alban » Freitag 22. Dezember 2006, 11:55

Hallo,

für eine Klasse, die ich als Datentyp verwende, möchte ich die Möglichkeit haben, z.B. die Funktion der __mult__() Methode für alle Instanzen der Klasse zu verändern.

Also wenn ich z.B. einen Algorithmus auf Basis dieser Klasse erstellt habe, soll es möglich sein, die Funktion der Multiplikation durch einfache Konfiguration zu verändern.

Meine erste Idee war eine globale Variable dafür zu nehmen, aber da gibt es doch bestimmt eine bessere Möglichkeit in Python?

Danke für die Hilfe.

Gruß,

Alban
BlackJack

Re: Global das Verhalten aller Klasseninstanzen verändern

Beitragvon BlackJack » Freitag 22. Dezember 2006, 15:39

alban hat geschrieben:für eine Klasse, die ich als Datentyp verwende, möchte ich die Möglichkeit haben, z.B. die Funktion der __mult__() Methode für alle Instanzen der Klasse zu verändern.


Also letztendlich möchtest Du die `__mul__()`-Methode der Klasse austauschen!? Dann mach doch genau das.

Code: Alles auswählen

class Viking(object):
    def _mul_a(self, other):
        print 'a'
   
    def _mul_b(self, other):
        print 'b'
   
    __mul__ = _mul_a


def main():
    eric = Viking()
    eric * 42
    Viking.__mul__ = Viking._mul_b
    eric * 42
alban
User
Beiträge: 8
Registriert: Mittwoch 19. April 2006, 23:44

Re: Global das Verhalten aller Klasseninstanzen verändern

Beitragvon alban » Freitag 22. Dezember 2006, 16:19

Danke.

Das hilft!

Alban

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]