logo

Python | Com obtenir el nom de la funció?

Un dels estils de codificació més destacats és seguir el paradigma OOP. Per això, avui dia, l'accent ha estat escriure codi amb modularitat, augmentar la depuració i crear un codi més robust i reutilitzable. Tot això va fomentar l'ús de diferents funcions per a diferents tasques i, per tant, estem obligats a conèixer certs hacks de funcions. En aquest article s'explica com imprimir el nom d'una funció. Parlem de certes maneres de fer-ho.

Mètode 1: obteniu el nom de la funció a Python mitjançant function.__name__

Aquesta funció s'ha introduït a Python 3 a Python3.



Python 3






# initializing function> def> GFG():> >return> 'You just called for success !!'> # printing function name> # using function.__name__> print>(>'The name of function is : '> +> GFG.__name__)>



>

>

Sortida:

The name of function is : GFG>

Mètode 2: obteniu el nom de la funció a Python mitjançant function.func_name

Mitjançant l'ús d'una funció de propietat de funció senzilla, nom_funció, es pot obtenir el nom de la funció i, per tant, pot ser molt útil per a les proves i també per a la documentació de vegades. L'inconvenient és que això només funciona per a Python2.

Python

desactiva el mode de desenvolupador




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

>

arbre de cerca binari]
>

Sortida:

The name of function is : GFG>

Mètode 3: obteniu el nom de la funció a Python mitjançant l'atribut __qualname__

El __qualname__ ofereix una informació més completa que el __name__ i, per tant, pot ser més útil en la depuració. Per extreure el nom de qualsevol objecte o classe, també podeu utilitzar el seu atribut __qualname__.

Python 3




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

>

>

Sortida:

Geekforgeeks Geekforgeeks.my_method>

Mètode 4: obteniu el nom de la funció a Python mitjançant el mòdul d'inspecció

Aquest codi importa el mòdul d'inspecció i defineix una funció get_function_name() que retorna el nom de la funció. La funció utilitza la funció inspect.currentframe() per obtenir l'objecte marc de la funció actual, i després retorna l'atribut co_name de l'atribut f_code de l'objecte marc, que és el nom de la funció.

La funció inspect.currentframe() retorna un objecte fotograma per al fotograma de la persona que truca. L'objecte marc és una instància de la classe FrameInfo, que té diversos atributs que proporcionen informació sobre el marc, com ara l'atribut f_code, que és l'objecte de codi per a la funció, i l'atribut co_name, que és el nom de la funció.

Finalment, el codi imprimeix el nom de la funció mitjançant la funció get_function_name().

Python 3

java concatenar cadenes




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>

>

>

Sortida

The name of function is : get_function_name>

Aquest enfocament té una complexitat temporal de O(1) i un espai auxiliar de O(1).