Den Methodennamen des Aufrufers in Python finden
In der objektorientierten Programmierung können Methoden häufig andere Methoden für dasselbe oder andere Objekte aufrufen. In Situationen, in denen eine aufgerufene Methode Informationen über ihren Aufrufer benötigt, kann es hilfreich sein, den Methodennamen des Aufrufers zu erhalten.
Identifizieren des Problems
Bedenken Sie den folgenden Python-Code:
def method1(self): ... a = A.method2() def method2(self): ...
In diesem Beispiel haben wir zwei Methoden, Methode1 und Methode2. Angenommen, wir möchten den Namen des Aufrufers von Methode2 aus dieser Methode selbst erhalten. Konkret möchten wir feststellen, dass Methode1 der Aufrufer ist.
Enthüllung der Lösung mithilfe von Selbstbeobachtung
Python stellt das Inspect-Modul bereit, das Selbstbeobachtungsfunktionen bietet. So können wir es nutzen, um unser Ziel zu erreichen:
import inspect def method1(self): ... a = A.method2() def method2(self): frame = inspect.currentframe() outer_frame = inspect.getouterframes(frame, 2) print('caller name:', outer_frame[1][3])
Durch den Aufruf von inspect.getouterframes(frame, 2) erhalten wir eine Liste der äußeren Frames, die den Aufrufstapel darstellen. Der zweite Frame in dieser Liste entspricht dem Aufrufer von Methode2, in unserem Fall Methode1. Das vierte Element in jedem Frame-Tupel stellt den Methodennamen dar, den wir auf der Konsole ausgeben.
Vorsichtsmaßnahmen
Introspektion kann zwar für das Debuggen und die Entwicklung nützlich sein, ist es aber nicht Es wird empfohlen, sich bei produktionskritischen Funktionen darauf zu verlassen.
Das obige ist der detaillierte Inhalt vonWie kann ich den Namen der aufrufenden Methode in Python ermitteln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!