Курс 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. Конкатенация строк с методом join()
  2. Проверка индексов коллекции
  3. Разделение строк в Python
  4. Python: цикл for и оператор присваивания
  5. Переопределение метода len
  6. Проверка версии Python
  7. Вывод букв строки в Python
  8. Получение ID процесса
  9. Инициализация объекта
  10. Лимиты на ресурсы Python
  11. Курс по дообучению ChatGPT
  12. Работа с классами данных
  13. Объединение списков в Python
  14. Оператор объединения словарей
  15. PrettyTable: создание таблицы
  16. Генераторы списков
  17. Создание новых функций через partial
  18. Транспонирование 2D-массива с помощью zip
  19. Метод join() для объединения строк
  20. Сравнение строк в Python
  21. Работа с файлами в Python
  22. Извлечение новостей с помощью newspaper3k
  23. Управление импортом в Python
  24. Структурирование данных с Pydantic
  25. Python и Монти Пайтон
  26. JMESPath в Python
  27. Введение в Python
  28. Обработка ошибки IndexError
  29. Создание списков в Python
  30. Расчет времени выполнения
  31. Установка пакета в Python
  32. Карта бомбоубежищ в Москве и Питере
  33. List Comprehension Tutorial
  34. Подсказки типов в Python
  35. Преобразование Word в PDF с Spire.Doc
  36. Работа со случайными элементами
  37. Уникальность ключей в словаре
  38. Python: возвращение нескольких значений
  39. Путь к интерпретатору Python
  40. Оператор del в Python
  41. Транспонирование 2D-массива с помощью zip
  42. Определение индекса элемента списка
  43. Получение текущей директории
  44. Обработка исключений в Python
  45. Распаковка аргументов в Python
  46. Преобразование строк в числа с плавающей запятой
  47. Методы HTTP запросов в Flask

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