Курс 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. Поиск индексов подстроки
  3. Расчет времени выполнения кода
  4. Управление памятью в Python
  5. Тестирование с responses
  6. Работа с комплексными числами
  7. Список импортированных модулей в Python
  8. Преобразование типов данных в set comprehension
  9. Методы Python для работы с данными
  10. Исправление ошибки NameError
  11. Протокол управления контекстом
  12. Разделение строк в Python
  13. Функции с необязательными аргументами
  14. Создание и операции с дробями
  15. Перебор элементов списка в Python
  16. Функция divmod() в Python
  17. Именованные срезы в Python
  18. Удаление элемента по индексу
  19. Доступ к локальным переменным
  20. Просмотр атрибутов и методов класса
  21. Создание списков в Python
  22. Howdoi — получение ответов из терминала
  23. Удаление файлов в Python
  24. Генератор бросков кубиков
  25. Метод remove() для удаления элемента из списка
  26. Глубокое копирование объектов
  27. Работа с функцией next() в Python
  28. Python OrderedDict и fromkeys() — работа с словарями
  29. Сортировка с помощью key
  30. Monkey Patching в Python
  31. Циклы for в Python
  32. Определение имен функций
  33. Проверка переменных окружения в Python
  34. Преобразование генераторов в циклы
  35. Пространство имен в Python
  36. Создание множества в Python
  37. CLI-инструмент howdoi
  38. Оператор распаковки в Python
  39. Логирование с Logzero
  40. Преобразование списков в словарь
  41. Операции с массивами в NumPy
  42. Оператор (*) в Python
  43. Генератор списка с условием if
  44. CSV строка разделение в Python
  45. Удаление элемента из списка
  46. Возврат нескольких значений
  47. Компиляция регулярных выражений

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