Курс 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. Работа со строками в Python
  3. split() — разделение строки
  4. Декоратор @override
  5. Оператор continue в Python
  6. Запрос DELETE с библиотекой requests
  7. Хранение данных
  8. Повторение элементов списков
  9. Безопасные SQL-запросы в Python 3.11
  10. Создание копии итератора
  11. Работа с YAML в Python: PyYAML.
  12. Работа с библиотекой xkcd
  13. Добавление элементов в список
  14. Работа с argparse
  15. Модуль pprint: улучшение вывода данных
  16. Сортировка элементов с OrderedDict
  17. Обратный список чисел
  18. Подписка на @SelectelNews
  19. Работа с комплексными числами
  20. Удаление URL-адресов в Python
  21. Передача аргументов через **arguments
  22. Объявление переменных в Python
  23. Управление пакетами с pip
  24. Оптимизация методов в Python 3.7
  25. Mad Libs Generator
  26. Генераторы в Python
  27. Работа с датами в Python
  28. Работа с комплексными числами
  29. Сортировка слиянием
  30. Работа с Telegram API на Python
  31. Подсчет часто встречающихся элементов
  32. Операции с массивами в NumPy
  33. Создание функций высшего порядка
  34. Переменные класса и экземпляра
  35. Исключение NotImplementedError
  36. Регистрация на курсы SF Education
  37. Получение имени функции с помощью inspect
  38. Рациональные числа в Python
  39. Возврат значений из генератора
  40. Создание и обучение модели с Keras
  41. Методы __repr__ и __str__ в Python
  42. Удаление элементов из списка в Python
  43. Подсказки типов в Python
  44. Функция zip() для объединения списков
  45. Создание генераторов

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