Вызов функции модуля по её имени (строке)

Перейти в телеграм, чтобы получить результаты теста
Пройдите тест, узнайте какой профессии подходите
Вам подходит профессия:
Аналитик данных
Основные характеристики профессии:
не нужно общаться с людьми
логика
анализ
поиск закономерностей
работа с числами
Построим личный план перехода в профессию для вас бесплатно
- убедитесь, подходит вам профессия или нет
- получите оценку своих навыков и шансов освоить профессию
- забронируем за вами скидку 55% на обучение, пока думаете
Позвоним вам в течение часа — не пропустите звонок
Чем занимается специалист
Специалист создает все онлайн-продукты, программы, приложения, игры и сайты, которыми вы пользуетесь каждый день.
Создает — значит описывает последовательность действий на специальном языке программирования. Настраивает действия, что должно произойти, если пользователь нажмет на кнопку.
Средняя зарплата начинающего специалиста в первый год работы:
от 50 000 ₽
Что надо знать и уметь, чтобы выучиться на аналитика:
- базовое школьное образование
- уверенные навыки работы с компьютером
- опыт выполнения задач в конкретные сроки
Глубокие знания математики или английского не нужны
Почему мы рекомендуем вам эту профессию
Ваш скрытый талант:
наблюдательность
Существует ситуация, когда необходимо вызвать функцию модуля по её имени, переданному в виде строки. Это часто бывает полезно, когда имя функции или
Существует ситуация, когда необходимо вызвать функцию модуля по её имени, переданному в виде строки. Это часто бывает полезно, когда имя функции или метода нужно динамически определить во время выполнения программы, и вызвать соответствующую функцию. Например:
import math
func_name = "sqrt"
# Необходимо вызвать функцию math.sqrt
Итак, как же реализовать вызов функции по её имени в строке?
Использование getattr
В Python есть встроенная функция getattr()
, которая возвращает значение атрибута объекта. Эта функция принимает два аргумента: объект и имя атрибута в виде строки.
import math
func_name = "sqrt"
func = getattr(math, func_name)
print(func(16)) # выводит 4.0
В этом примере getattr()
возвращает функцию sqrt()
из модуля math
, и эта функция затем вызывается с аргументом 16
.
Использование словаря
Ещё одним способом является использование словаря, в котором ключами являются имена функций, а значениями — сами функции.
import math
func_dict = {"sqrt": math.sqrt, "pow": math.pow}
func_name = "sqrt"
print(func_dict[func_name](16)) # выводит 4.0
Здесь func_dict[func_name]
возвращает функцию sqrt()
из модуля math
, которая затем вызывается с аргументом 16
.
Таким образом, можно вызвать функцию модуля по её имени, переданному в виде строки, используя либо функцию getattr()
, либо словарь.
Добавить комментарий