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
Global das Verhalten aller Klasseninstanzen verändern
Also letztendlich möchtest Du die `__mul__()`-Methode der Klasse austauschen!? Dann mach doch genau das.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.
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