logo

Python | Як отримати назву функції?

Одним із найвідоміших стилів кодування є парадигма ООП. Для цього сьогодні наголошується на написанні модульного коду, посиленні налагодження та створенні більш надійного коду, який можна багаторазово використовувати. Все це спонукало до використання різних функцій для різних завдань, і, отже, ми повинні знати певні хаки функцій. У цій статті розглядається, як надрукувати назву функції. Давайте обговоримо певні способи, як це можна зробити.

Спосіб 1. Отримайте назву функції в Python за допомогою function.__name__

Ця функція була введена в 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__)>



>

>

Вихід:

архітектура пружинного завантаження
The name of function is : GFG>

Спосіб 2. Отримайте назву функції в Python за допомогою function.func_name

Використовуючи просту функцію властивостей функції, func_name, можна отримати назву функції, що, отже, може бути дуже зручним для цілей тестування, а також іноді для документації. Недоліком є ​​те, що це працює лише для 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)>

>

>

Вихід:

The name of function is : GFG>

Спосіб 3: Отримайте назву функції в Python за допомогою атрибута __qualname__

__qualname__ надає більш повну інформацію, ніж __name__, і тому може бути більш корисним у налагодженні. Щоб отримати назву з будь-якого об’єкта чи класу, ви також можете використати його атрибут __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__)>

>

>

Вихід:

Geekforgeeks Geekforgeeks.my_method>

Спосіб 4: Отримайте назву функції в Python за допомогою модуля inspect

Цей код імпортує модуль inspect і визначає функцію get_function_name(), яка повертає назву функції. Функція використовує функцію inspect.currentframe(), щоб отримати об’єкт фрейму поточної функції, а потім повертає атрибут co_name атрибута f_code об’єкта фрейм, який є назвою функції.

Функція inspect.currentframe() повертає об’єкт кадру для кадру абонента. Об’єкт кадру є екземпляром класу FrameInfo, який має кілька атрибутів, які надають інформацію про кадр, наприклад атрибут f_code, який є об’єктом коду для функції, і атрибут co_name, який є назвою функції.

Нарешті, код друкує назву функції за допомогою функції 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>

>

перевести рядок до int
>

Вихід

The name of function is : get_function_name>

Цей підхід має часову складність O(1) і допоміжний простір O(1).