Einer der bekanntesten Codierungsstile ist die Befolgung des OOP-Paradigmas. Heutzutage liegt der Schwerpunkt dabei darauf, modularen Code zu schreiben, das Debugging zu verbessern und einen robusteren, wiederverwendbaren Code zu erstellen. Dies alles förderte die Verwendung unterschiedlicher Funktionen für unterschiedliche Aufgaben, und daher kennen wir zwangsläufig bestimmte Hacks von Funktionen. In diesem Artikel wird erläutert, wie der Name einer Funktion gedruckt wird. Lassen Sie uns bestimmte Möglichkeiten besprechen, wie dies erreicht werden kann.
Methode 1: Funktionsnamen in Python mit function.__name__ abrufen
Diese Funktion wurde in Python 3 in Python3 eingeführt.
Python3
# initializing function> def> GFG():> >return> 'You just called for success !!'> # printing function name> # using function.__name__> print>(>'The name of function is : '> +> GFG.__name__)> |
>
>
Ausgabe :
The name of function is : GFG>
Methode 2: Funktionsnamen in Python mit function.func_name abrufen
Durch die Verwendung einer einfachen Funktionseigenschaftsfunktion, func_name, kann man den Namen der Funktion ermitteln und kann daher für Testzwecke und manchmal auch für die Dokumentation sehr praktisch sein. Der Nachteil ist, dass dies nur für Python2 funktioniert.
Python
# initializing function> def> GFG():> >return> 'You just called for success !!'> # printing function name> # using function.func_name> print>(>'The name of function is : '> +> GFG.func_name)> |
>
>
Ausgabe :
The name of function is : GFG>
Methode 3: Funktionsnamen in Python mithilfe des Attributs __qualname__ abrufen
Der __qualname__ liefert umfassendere Informationen als __name__ und kann daher beim Debuggen hilfreicher sein. Um den Namen eines beliebigen Objekts oder einer Klasse zu extrahieren, können Sie auch dessen Attribut __qualname__ verwenden.
Python3
def> Geekforgeeks():> >pass> class> Geekforgeeks(>object>):> >def> my_method(>self>):> >pass> # 'my_function'> print>(Geekforgeeks.__qualname__)> # 'My_Class.my_method'> print>(Geekforgeeks.my_method.__qualname__)> |
>
>
Ausgabe :
Geekforgeeks Geekforgeeks.my_method>
Methode 4: Funktionsnamen in Python mithilfe des Inspect-Moduls abrufen
Dieser Code importiert das Inspektionsmodul und definiert eine Funktion get_function_name(), die den Namen der Funktion zurückgibt. Die Funktion verwendet die Funktion inspect.currentframe(), um das Frame-Objekt der aktuellen Funktion abzurufen, und gibt dann das co_name-Attribut des f_code-Attributs des Frame-Objekts zurück, das den Namen der Funktion darstellt.
Die Funktion inspect.currentframe() gibt ein Frame-Objekt für den Frame des Aufrufers zurück. Das Frame-Objekt ist eine Instanz der FrameInfo-Klasse, die über mehrere Attribute verfügt, die Informationen über den Frame bereitstellen, z. B. das f_code-Attribut, das das Codeobjekt für die Funktion ist, und das co_name-Attribut, das den Namen der Funktion darstellt.
Schließlich gibt der Code den Namen der Funktion mithilfe der Funktion get_function_name() aus.
Python3
nicht deterministische endliche Automaten
import> inspect> # initializing function> def> get_function_name():> ># get the frame object of the function> >frame>=> inspect.currentframe()> >return> frame.f_code.co_name> # printing function name> print>(>'The name of function is : '> +>get_function_name())># test_function> #This code is contributed by Edula Vinay Kumar Reddy> |
>
>Ausgabe
The name of function is : get_function_name>
Dieser Ansatz hat eine Zeitkomplexität von O(1) und einen Hilfsraum von O(1).