ich Code haben, wie ist:Gibt es eine Möglichkeit, den Zugriff auf die Klasse eines Verfahrens zu gewinnen, wenn alles, was Sie haben eine aufrufbare
class Foo:
def foo(self):
pass
class Bar:
def foo(self):
pass
f = random.choice((Foo().foo, Bar().foo))
Wie greife ich Bar
oder Foo
von f?
f.__dict__
ist von wenig zu keiner Hilfe, aber wie repr(f)
gibt <bound method Bar.foo of <__main__.Bar object at 0x10c6eec18>>'
es muss möglich sein, aber wie?
Nitpick: Der Typ der Instanz ist nicht unbedingt die Klasse, in der die Funktion definiert wurde; Nur weil die Methode an eine X-Instanz gebunden ist, heißt das nicht, dass die Funktion nicht in Klasse Y definiert werden könnte. Aber dieser Code wird sicherlich in 99,99% der realen Szenarien die korrekte Ausgabe liefern. Und es ist sowieso nicht klar, wie hoch die erwarteten Ergebnisse des OP in einem solchen Fall von 0,01% wären. –