Курс 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. Работа со строками в Python
  2. Работа со строками в Python
  3. Путь к интерпретатору Python
  4. Списки: объединение, изменение
  5. Измерение времени выполнения кода с помощью time
  6. Работа с IP-адресами в Python
  7. Проверка памяти объекта
  8. List Comprehension Tutorial
  9. Вложенные генераторы в Python
  10. Декораторы в Python
  11. Инициализация структур данных
  12. Пересечение списков с использованием множеств
  13. Списки в Python: основы
  14. Изменения в обработке логических значений
  15. Основы работы со списками
  16. Вычисление времени выполнения
  17. Форматирование строк в Python
  18. Установка виртуального окружения Python
  19. Новшества Flask 2.0
  20. Установка и использование emoji
  21. Нахождение пересечения множеств
  22. Форматирование строк в Python
  23. Повторение элементов в Python
  24. Срезы в Python
  25. Добавление элементов в список: append() vs extend()
  26. Работа с датой и временем в Python
  27. Частичное применение функций в Python
  28. Атрибуты класса и экземпляра
  29. Установка максимального количества цифр
  30. Декораторы для регистрации функций
  31. Просмотр внешнего файла в Python
  32. Тестирование с unittest
  33. Структурирование именованных констант
  34. Генерация UUID в Python
  35. Работа со случайными элементами
  36. Форматирование вывода с F-строками
  37. Переворот списка в Python
  38. Настройка шрифта и цвета в Tkinter
  39. Копирование в Python
  40. Создание списков в Python
  41. Оператор @ для умножения матриц
  42. Запуск внешнего кода в Jupyter
  43. Измерение времени выполнения кода

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