Курс 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. Функция map() в Python
  2. Работа с процессами в Python
  3. Изучение объектов с помощью dir()
  4. Базовые объекты Python
  5. Операции со строками в Python
  6. OrderedDict — упорядоченный словарь
  7. Профилирование кода
  8. Работа с асинхронными задачами в Python
  9. Визуализация пропусков данных
  10. Запрос DELETE с библиотекой requests
  11. Работа с срезами в Numpy
  12. Изменение элемента списка
  13. Закрытие файла в Python
  14. Метод hash в Python
  15. Экранирование символов в Python
  16. Декоратор Property в Python
  17. Частичное совпадение пользовательского ввода в Python 3.10
  18. Декоратор total_ordering для класса Point
  19. Инверсия списка/строки в Python
  20. Генераторные функции в Python
  21. Повторение элементов в Python
  22. Наиболее частотные элементы с помощью Counter
  23. Работа с YAML в Python: PyYAML.
  24. Игра «Угадывание чисел»
  25. Присвоение и ссылки
  26. Запуск файлового сервера
  27. Генераторы в Python
  28. Применение команды break
  29. Python reversed() vs срез[::-1]
  30. Регулярные выражения в Python
  31. Сохранение Unicode в JSON
  32. Сравнение def и lambda функций в Python
  33. Работа с IP-адресами в Python
  34. Переопределение метода
  35. Объединение списков с помощью zip
  36. Печать календаря
  37. Оператор space-invader
  38. Работа с defaultdictами в Python
  39. Функция __init__ в Python
  40. Обработка исключений в Python
  41. Получение ID текущего процесса
  42. Работа с OpenCV
  43. Работа с путями в Python
  44. Тестирование с responses
  45. Делегирование в Python

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