Курс 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. Циклы for в Python
  2. Логирование с Logzero: ротация файла
  3. Функция print() — вывод информации
  4. Эффективная конкатенация строк в Python
  5. Реализация метода __abs__ в Python
  6. Бесконечные списки в Python
  7. Форматирование строк в Python
  8. Копирование в Python
  9. Разделение списка на гнппы
  10. Преобразование символов в нижний регистр
  11. Импорт модулей в Python 3.12
  12. Конструктор в Python
  13. Форматирование строк с % в Python
  14. Применение функции к списку
  15. Создание матрицы в Python
  16. Namedtuple в Python
  17. Установка Python — Простое руководство
  18. Псевдонимы в Python
  19. Python: возвращение нескольких значений
  20. kwargs в Python
  21. Создание циклической ссылки
  22. Запуск внешних программ с subprocess
  23. inspect в Python: анализ кода
  24. Принципы SRP и OCP
  25. Деление в Python
  26. Открытие, чтение и закрытие файла
  27. Преобразование числа в восьмеричную строку
  28. Создание коллекций из выражения-генератора
  29. Создание словарей с defaultdict()
  30. Лямбда-функции в Python
  31. Python Метод sleep() из time
  32. Работа с областями видимости переменных
  33. Функции any() и all() в Python
  34. Метод get() в Python
  35. Метод rpow в Python
  36. Объединение словарей в Python
  37. Установка и использование Python-dateutil
  38. Скачать видео с YouTube
  39. Поиск HTML-элементов с BeautifulSoup
  40. Сортировка списка по индексам
  41. *args и **kwargs в Python
  42. Модуль Antigravity в Python 3
  43. Поиск шаблона в начале строки
  44. Новшества Flask 2.0
  45. Асинхронное программирование с asyncio

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