logo

Python | Hur får man funktionsnamn?

En av de mest framträdande stilarna för kodning är att följa OOP-paradigmet. För detta, nuförtiden, har stress varit att skriva kod med modularitet, öka felsökningen och skapa en mer robust, återanvändbar kod. Allt detta uppmuntrade användningen av olika funktioner för olika uppgifter, och därför är vi skyldiga att känna till vissa hack av funktioner. Den här artikeln diskuterar hur man skriver ut namnet på en funktion. Låt oss diskutera vissa sätt på vilka detta kan göras.

Metod 1: Hämta funktionsnamn i Python med funktion.__namn__

Denna funktion har introducerats i Python 3 i Python3.



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__)>



>

>

Utgång:

konkat java-sträng
The name of function is : GFG>

Metod 2: Hämta funktionsnamn i Python med hjälp av function.func_name

Genom att använda en enkel funktionsegenskapsfunktion, func_name, kan man få namnet på funktionen och kan därför vara ganska praktisk för teständamålet och även för dokumentation ibland. Nackdelen är att detta fungerar bara för Python2.

Pytonorm




# 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)>

>

>

Utgång:

The name of function is : GFG>

Metod 3: Hämta funktionsnamn i Python med attributet __qualname__

__qualname__ ger mer fullständig information än __name__ och kan därför vara mer användbar vid felsökning. För att extrahera namnet från ett objekt eller en klass kan du också använda dess __qualname__-attribut.

Python3




listnod i java
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__)>

>

>

Utgång:

Geekforgeeks Geekforgeeks.my_method>

Metod 4: Hämta funktionsnamn i Python med inspekteringsmodulen

Denna kod importerar inspekteringsmodulen och definierar en funktion get_function_name() som returnerar namnet på funktionen. Funktionen använder funktionen inspect.currentframe() för att få frame-objektet för den aktuella funktionen och returnerar sedan co_name-attributet för frame-objektets f_code-attribut, vilket är namnet på funktionen.

Funktionen inspect.currentframe() returnerar ett ramobjekt för anroparens ram. Frame-objektet är en instans av klassen FrameInfo, som har flera attribut som ger information om ramen, till exempel attributet f_code, som är kodobjektet för funktionen, och attributet co_name, som är namnet på funktionen.

Slutligen skriver koden ut namnet på funktionen med hjälp av funktionen get_function_name().

Python3




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>

>

>

Produktion

The name of function is : get_function_name>

Detta tillvägagångssätt har en tidskomplexitet på O(1) och ett hjälprum på O(1).