Python | Kaip gauti funkcijos pavadinimą?
Vienas ryškiausių kodavimo stilių yra OOP paradigmos laikymasis. Dėl to šiais laikais sunku rašyti kodą naudojant moduliškumą, padidinti derinimą ir sukurti tvirtesnį, pakartotinai naudojamą kodą. Visa tai paskatino naudoti skirtingas funkcijas skirtingoms užduotims, todėl mes privalome žinoti tam tikrus funkcijų įsilaužimus. Šiame straipsnyje aptariama, kaip spausdinti funkcijos pavadinimą. Aptarkime tam tikrus būdus, kaip tai galima padaryti.
1 būdas: gaukite funkcijos pavadinimą Python naudodami funkciją.__name__
Ši funkcija buvo įdiegta Python 3 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__)> |
Išvestis:
The name of function is : GFG
2 būdas: gaukite funkcijos pavadinimą Python naudodami function.func_name
Naudojant paprastą funkcijos ypatybės funkciją func_name, galima gauti funkcijos pavadinimą, todėl jis gali būti gana patogus testavimo tikslais ir kartais dokumentuojant. Trūkumas yra tas, kad tai veikia tik 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)> |
Išvestis:
The name of function is : GFG
3 būdas: gaukite funkcijos pavadinimą Python naudodami atributą __qualname__
__qualname__ suteikia išsamesnės informacijos nei __name__, todėl gali būti naudingesnė derinant. Norėdami išgauti pavadinimą iš bet kurio objekto ar klasės, taip pat galite naudoti jo atributą __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__)> |
Išvestis:
Geekforgeeks Geekforgeeks.my_method
4 būdas: gaukite funkcijos pavadinimą Python naudodami tikrinimo modulį
Šis kodas importuoja tikrinimo modulį ir apibrėžia funkciją get_function_name(), kuri grąžina funkcijos pavadinimą. Funkcija naudoja funkciją inspect.currentframe(), kad gautų dabartinės funkcijos kadro objektą, o tada grąžina kadro objekto atributo f_code atributą co_name, kuris yra funkcijos pavadinimas.
Funkcija inspect.currentframe() grąžina skambinančiojo kadro rėmelio objektą. Rėmelio objektas yra FrameInfo klasės egzempliorius, turintis keletą atributų, teikiančių informaciją apie rėmelį, pvz., atributas f_code, kuris yra funkcijos kodo objektas, ir atributas co_name, kuris yra funkcijos pavadinimas.
Galiausiai kodas atspausdina funkcijos pavadinimą naudodamas funkciją 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> |
Išvestis
The name of function is : get_function_name
Šio metodo laiko sudėtingumas yra O(1), o pagalbinė erdvė – O(1).