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!