Wie erhalte ich den Namen der aufrufenden Methode in Python?

Patricia Arquette
Freigeben: 2024-11-11 03:32:02
Original
388 Leute haben es durchsucht

How to Get the Name of the Calling Method in Python?

So identifizieren Sie den Namen der aufrufenden Methode in einer aufgerufenen Methode in Python

Beim Arbeiten mit komplexem Python-Code kann es hilfreich sein, den Namen der Methode zu ermitteln eine bestimmte Methode genannt. Dies kann beim Debuggen, Profilieren und Verstehen des Codeflusses hilfreich sein.

Eine Möglichkeit, dies zu erreichen, ist die Verwendung des Inspect-Moduls, insbesondere der Funktionen getframeinfo und getouterframes. Diese Funktionen liefern Informationen über die aktuellen und vorherigen Frames im Aufrufstapel.

Betrachten Sie das folgende Beispiel:

def method1(self):
    ...
    a = A.method2()

def method2(self):
    ...
Nach dem Login kopieren

Wenn wir den Namen des Aufrufers (Methode1) innerhalb von Methode2 erhalten möchten Ohne Methode 1 zu ändern, können wir den folgenden Code verwenden:

import inspect

def f1(): f2()
def f2():
    curframe = inspect.currentframe()
    calframe = inspect.getouterframes(curframe, 2)
    print('caller name:', calframe[1][3])

f1()
Nach dem Login kopieren

Dieser Code verwendet den aktuellen Frame, um den äußeren Frame abzurufen, der die Aufrufmethode darstellt. Der Funktionsname wird dann aus den Informationen des äußeren Rahmens extrahiert.

Es ist wichtig zu beachten, dass Selbstbeobachtungstechniken wie diese in erster Linie für Debugging- und Entwicklungszwecke gedacht sind. Es wird nicht empfohlen, sich bei produktionskritischen Funktionen auf sie zu verlassen.

Das obige ist der detaillierte Inhalt vonWie erhalte ich den Namen der aufrufenden Methode in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage