Use Klassenmethode nicht Instanzmethode mit dem gleichen Namen
Ich habe das folgende Snippet:
class Meta(type):
def __getattr__(self, name):
pass
class Klass(object):
__metaclass__ = Meta
def get(self, arg):
pass
Nun, wenn ich tue:
kls = Klass()
kls.get('arg')
alles funktioniert wie erwartet (die Instanzmethodeget
wird genannt)
Aber wenn ich es mache
Klass.get('arg')
wieder wird die Instanzmethode gefunden und eine Ausnahme ausgegeben, da sie als ungebundene Methode behandelt wird.
Wie kann ich @ anrufeKlass.get('arg')
gehe durch die__getattr__
in der Metaklasse definiert? Ich brauche dies, weil ich alle Methoden, die für eine Klasse aufgerufen wurden, an ein anderes Objekt übergeben möchte (dies würde in @ geschehen__getattr__
).