Имя функции в Python

Имя функции в Python: как его получить?

В Python имя функции, как и все остальные объекты, обладает свойствами, доступ к которым можно получить при помощи встроенных функций и методов. В статье мы подробно рассмотрим разные способы определения имени функции.

Использование свойства __name__

В Python каждая функция обладает рядом свойств, которые доступны через специальные имена, начинающиеся и заканчивающиеся двумя подчеркиваниями. Одно из таких свойств — __name__, которое содержит имя функции.

def my_function():
    pass

print(my_function.__name__)

#my_function

В этом примере my_function.__name__ вернул строку my_function, которая является именем функции.

Использование модуля inspect

Модуль inspect в стандартной библиотеке Python предоставляет несколько функций для получения информации о функциях и других объектах. Одной из таких функций является inspect.getsource(), которая возвращает исходный код функции в виде строки.

import inspect

def my_function():
    pass

def get_name(func):
    lines = inspect.getsource(func).splitlines()
    first_line = lines[0]
    name = first_line.split()[1].split('(')[0]
    return name

print(get_name(my_function))

#my_function

В этом примере get_name() использует inspect.getsource() для получения исходного кода функции, затем извлекает первую строку этого кода и извлекает имя функции из этой строки.

Заключение

В Python есть несколько способов определить имя функции. Самый простой и прямой способ — использовать свойство __name__ функции. Наконец, можно использовать модуль inspect из стандартной библиотеки Python для извлечения исходного кода функции и поиска ее имени в этом коде.

Содержание: