Курс Python → Вызов функций по строке в Python.

Для вызова функций или методов по строке в Python можно использовать несколько приемов. Один из лучших способов — это создание словаря, в котором ключами будут строки, а значениями — соответствующие функции или методы. Такой подход позволяет легко вызывать функции, даже если их названия не совпадают с передаваемой строкой. Например:


def function1():
    print("Function 1 called")

def function2():
    print("Function 2 called")

functions = {
    "func1": function1,
    "func2": function2
}

choice = "func1"
if choice in functions:
    functions[choice]()

Еще одним способом является использование встроенной функции getattr, которая позволяет получить объект по его имени. Например, если у нас есть класс с методами:


class MyClass:
    def method1(self):
        print("Method 1 called")

    def method2(self):
        print("Method 2 called")

obj = MyClass()
method_name = "method1"
getattr(obj, method_name)()

Также можно использовать функции locals или eval для вызова функций по строке, но данный подход не рекомендуется из-за потенциальных проблем с безопасностью и читаемостью кода. Например:


def my_function():
    print("My function called")

function_name = "my_function"
# Использование locals
locals()[function_name]()
# Использование eval
eval(function_name + "()")

В итоге, для вызова функций или методов по строке в Python рекомендуется использовать словарь с функциями или методами, либо функцию getattr. Эти методы обеспечивают безопасность и удобство в работе с вызовом функций по строке.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Хеширование паролей с солью
  2. Введение в Python
  3. Оформление текста в консоли с TermColor
  4. Работа с модулем Calendar
  5. Декораторы в Python
  6. Структура данных deque в Python
  7. Итерация по коллекции в Python
  8. Замена текста с помощью sub
  9. Создание спинбокса в tkinter
  10. Метод __getitem__ в Python
  11. Python: возвращение нескольких значений
  12. Concrete Paths — метод .with_suffix()
  13. Перевод двоичного кода в целое число
  14. Рациональные числа в Python
  15. Преобразование Excel в PDF с Spire.XLS
  16. Инверсия списков и строк в Python
  17. Изменение элемента списка
  18. Скрытие вывода данных
  19. Модуль array: создание и использование массивов
  20. Логирование с Logzero
  21. Оператор @ для умножения матриц
  22. Модуль inspect: получение информации о объектах
  23. Метод rmatmul для обратного матричного умножения
  24. Добавление элемента к кортежу
  25. Метод remove() для удаления элемента из списка
  26. Синхронизация доступа к ресурсам
  27. Метод get для словарей
  28. Определение функций с необязательными аргументами
  29. Генераторы в Python
  30. Работа с библиотекой xkcd
  31. Обход элементов в Python
  32. Работа с многоуровневыми словарями в Python
  33. Имена объектов в Python
  34. Сериализация данных в JSON с помощью json.dumps
  35. Мониторинг работы программы Py-spy
  36. Анонимные функции в Python
  37. Удаление знаков препинания в Python
  38. Подсказки типов в Python
  39. Функции в Python
  40. Хэш-функции в Python
  41. Работа с пользовательским вводом
  42. Секреты Python
  43. Декораторы для регистрации функций
  44. Гибкие функции Python
  45. Отправка поздравлений по дню рождения
  46. Установка максимального количества цифр
  47. Настройка вывода в Numpy

Marketello читают маркетологи из крутых компаний