Python | Hvordan få funksjonsnavn?

En av de mest fremtredende stilene for koding er å følge OOP-paradigmet. For dette, i dag, har stress vært å skrive kode med modularitet, øke feilsøkingen og lage en mer robust, gjenbrukbar kode. Alt dette oppmuntret til bruk av forskjellige funksjoner for forskjellige oppgaver, og derfor er vi nødt til å kjenne til visse hack av funksjoner. Denne artikkelen diskuterer hvordan du skriver ut navnet på en funksjon. La oss diskutere visse måter dette kan gjøres på.

Metode 1: Få funksjonsnavn i Python ved hjelp av funksjon.__navn__

Denne funksjonen er introdusert 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__)>

Utgang:

The name of function is : GFG 

Metode 2: Få funksjonsnavn i Python ved å bruke function.func_name

Ved å bruke en enkel funksjonsegenskapsfunksjon, func_name, kan man få navnet på funksjonen og kan derfor være ganske nyttig for testformålet og også for dokumentasjon til tider. Ulempen er at dette fungerer bare for Python2.

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

Utgang:

The name of function is : GFG 

Metode 3: Få funksjonsnavn i Python ved å bruke attributtet __qualname__

__qualname__ gir mer fullstendig informasjon enn __name__ og kan derfor være mer nyttig ved feilsøking. For å trekke ut navnet fra et hvilket som helst objekt eller klasse, kan du også bruke attributtet __qualname__.

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

Utgang:

Geekforgeeks Geekforgeeks.my_method 

Metode 4: Få funksjonsnavn i Python ved å bruke inspeksjonsmodulen

Denne koden importerer inspeksjonsmodulen og definerer en funksjon get_function_name() som returnerer navnet på funksjonen. Funksjonen bruker funksjonen inspect.currentframe() for å hente frame-objektet til gjeldende funksjon, og returnerer deretter co_name-attributtet til f_code-attributtet til frame-objektet, som er navnet på funksjonen.

Funksjonen inspect.currentframe() returnerer et rammeobjekt for rammen til den som ringer. Frame-objektet er en forekomst av FrameInfo-klassen, som har flere attributter som gir informasjon om rammen, for eksempel f_code-attributtet, som er kodeobjektet for funksjonen, og co_name-attributtet, som er navnet på funksjonen.

Til slutt skriver koden ut navnet på funksjonen ved å bruke funksjonen 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>

Produksjon

The name of function is : get_function_name 

Denne tilnærmingen har en tidskompleksitet på O(1) og et hjelperom på O(1).