Python | Ako získať názov funkcie?

Jeden z najvýznamnejších štýlov kódovania je podľa paradigmy OOP. Na tento účel je v súčasnosti kladený dôraz na písanie kódu s modularitou, zvýšenie ladenia a vytvorenie robustnejšieho, opakovane použiteľného kódu. To všetko podporovalo používanie rôznych funkcií pre rôzne úlohy, a preto musíme poznať určité hacky funkcií. Tento článok popisuje, ako vytlačiť názov funkcie. Poďme diskutovať o určitých spôsoboch, ako to možno urobiť.

Metóda 1: Získajte názov funkcie v Pythone pomocou funkcie function.__name__

Táto funkcia bola zavedená v Pythone 3 v Pythone3.

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

Výkon :

The name of function is : GFG 

Metóda 2: Získajte názov funkcie v Pythone pomocou function.func_name

Použitím jednoduchej funkcie vlastnosti funkcie, func_name, je možné získať názov funkcie, a preto môže byť celkom užitočný na účely testovania a niekedy aj na dokumentáciu. Nevýhodou je, že to funguje len pre 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)>

Výkon :

The name of function is : GFG 

Metóda 3: Získajte názov funkcie v Pythone pomocou atribútu __qualname__

__qualname__ poskytuje úplnejšie informácie ako __name__, a preto môže byť užitočnejšie pri ladení. Ak chcete extrahovať názov z akéhokoľvek objektu alebo triedy, môžete použiť aj jeho atribút __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__)>

Výkon :

Geekforgeeks Geekforgeeks.my_method 

Metóda 4: Získajte názov funkcie v Pythone pomocou modulu inspect

Tento kód importuje kontrolný modul a definuje funkciu get_function_name(), ktorá vracia názov funkcie. Funkcia používa funkciu inspect.currentframe() na získanie objektu frame aktuálnej funkcie a potom vráti atribút co_name atribútu f_code objektu frame, čo je názov funkcie.

Funkcia inspect.currentframe() vracia objekt frame pre rámec volajúceho. Objekt frame je inštanciou triedy FrameInfo, ktorá má niekoľko atribútov, ktoré poskytujú informácie o rámci, ako napríklad atribút f_code, čo je objekt kódu pre funkciu, a atribút co_name, čo je názov funkcie.

Nakoniec kód vypíše názov funkcie pomocou funkcie 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>

Výkon

The name of function is : get_function_name 

Tento prístup má časovú zložitosť O(1) a pomocný priestor O(1).