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