Курс 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. Использование функции product
  2. Оформление текста в консоли с TermColor
  3. Преобразование данных в Python
  4. Проверка однородности элементов списка
  5. Работа с JSON в Python
  6. Итераторы в Python
  7. Проверка индексов коллекции
  8. Поиск индексов подстроки
  9. Условные выражения в Python
  10. Функция zip() в Python
  11. Использование обратной косой черты в f-строках
  12. Модуль inspect: получение информации о объектах
  13. Избегайте ошибку FileNotFoundError
  14. Управление пакетами с pip
  15. Структура строк в Python
  16. Метод сравнения объектов в Python
  17. Beautiful Soup — извлечение данных из HTML
  18. Оператор * в Python
  19. Обработка данных в Python
  20. Добавление элемента к кортежу
  21. Срез в Python
  22. Лямбда-функции в Python
  23. Работа с срезами в Python
  24. Курс Data Scientist в медицине
  25. Функции с дополнением
  26. Метод join для наборов
  27. Удаление falsy-значений из списка с помощью filter
  28. Форматирование чисел в Python
  29. Python enumerate() для работы с индексами
  30. Обновление и получение данных в SQLite
  31. Декоратор Property в Python
  32. Управление браузером с Selenium
  33. Динамическая типизация в Python
  34. Метод __complex__ в Python
  35. Построение графиков в Matplotlib
  36. Подсказки типов в Python
  37. Оператор del в Python
  38. Метод rrshift для пользовательских объектов
  39. Сортировка с помощью key
  40. Статическая типизация в Python
  41. Работа с deque из collections
  42. Работа с файлами и директориями в Python.
  43. Объединение списков с использованием itertools.chain
  44. Модуль subprocess: запуск внешних команд
  45. Сортировка элементов с OrderedDict
  46. Конкатенация строк в Python

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