Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann eine Funktion in Python ihren eigenen Namen ermitteln?

Wie kann eine Funktion in Python ihren eigenen Namen ermitteln?

Susan Sarandon
Susan SarandonOriginal
2024-10-28 22:33:30674Durchsuche

 How Can a Function Discover Its Own Name in Python?

Die Identität der Funktion suchen: Ihren Namen von innen heraus aufdecken

Im Bereich der Codierung dienen Funktionen oft als Bausteine, die bestimmte Aufgaben ausführen und die Grundlage für größere Programme bilden. Haben Sie jedoch schon einmal das Bedürfnis verspürt, den Namen der Funktion zu kennen, die Sie gerade ausführen?

Stellen Sie sich eine Funktion namens foo vor, die ihre Identität verkünden möchte: „Hallo Welt! Mein Name ist foo.“ Aber wie kann foo seinen eigenen Namen bestimmen, ohne ihn explizit fest zu codieren?

Betreten Sie das Reich der dynamischen Selbstbeobachtung. Dank des Inspect-Moduls ist es möglich, Informationen über die aktuell ausgeführte Funktion aus dieser Funktion heraus abzurufen. Die inspect.stack()-Methode taucht in die Tiefen des Stapels ein und gibt eine Liste von Frames zurück, die jeweils einen Aufruf im aktuellen Ausführungsstapel darstellen.

In unserem Fall inspect.stack()[0][ 3] bezeichnet den Rahmen der aktuellen Funktion, während inspect.stack()[1][3] den Aufrufer der aktuellen Funktion darstellt. Unter Nutzung dieses Wissens ermöglicht der folgende Code es foo, seine Identität zu verkünden, ohne auf statische Zeichenfolgen zurückgreifen zu müssen:

<code class="python">import inspect

def foo():
   print("my name is", inspect.stack()[0][3])
   print("caller of foo:", inspect.stack()[1][3])

foo()</code>

Und wie von Zauberhand enthüllt die Ausgabe:

my name is foo
caller of foo: <module_caller_of_foo>

Die Kraft der Selbstbeobachtung nutzen Funktionen können jetzt ihre eigenen Namen erkennen und so ihre Identitäten innerhalb der sich ständig ändernden Landschaft der Codeausführung dynamisch anpassen und kommunizieren.

Das obige ist der detaillierte Inhalt vonWie kann eine Funktion in Python ihren eigenen Namen ermitteln?. 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