Heim >Backend-Entwicklung >Python-Tutorial >Wie erhalte ich den Methodennamen des Aufrufers in Python?

Wie erhalte ich den Methodennamen des Aufrufers in Python?

Linda Hamilton
Linda HamiltonOriginal
2024-12-07 07:56:13447Durchsuche

How to Get the Caller's Method Name in Python?

Zugriff auf den Methodennamen des Aufrufers in Python

Das Abrufen des Namens der aufrufenden Methode innerhalb einer aufgerufenen Methode kann sich beim Debuggen und bei der Selbstbeobachtung als nützlich erweisen. Um dies zu erreichen, stellt Python das Inspect-Modul bereit, das eine Reihe von Funktionen zum Überprüfen von Codeobjekten bietet.

Mit den Funktionen getframeinfo und currentframe von inspect kann man auf den Callstack zugreifen und den Frame des Aufrufers abrufen. Durch das Durchlaufen des Aufrufstapels wird es möglich, den Namen des Anrufers zu identifizieren.

Hier ist ein Beispiel, das diesen Ansatz veranschaulicht:

import inspect

def method1():
    frame = inspect.currentframe()
    outer_frame = inspect.getouterframes(frame, 2)[1]
    print(f"Caller's name: {outer_frame[3]}")
    method2()

def method2():
    frame = inspect.currentframe()
    outer_frame = inspect.getouterframes(frame, 2)[1]
    print(f"Caller's name: {outer_frame[3]}")

method1()

Bei der Ausführung gibt dieser Code Folgendes aus:

Caller's name: method1
Caller's name: method2

Während Selbstbeobachtung für das Debuggen und die Entwicklung von Vorteil sein kann, sollte man sich bei der Produktion nicht zu sehr darauf verlassen Funktionalität.

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

Stellungnahme:
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