Курс 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. Функция format() в Python
  2. Инверсия списка и строки в Python
  3. Переворот последовательности
  4. Измерение времени выполнения кода
  5. Транспонирование матрицы
  6. Обработка исключений в Python
  7. Оператор zip в Python
  8. f-строки в формате строк
  9. Работа со словарями Python
  10. Преобразование объекта в строку
  11. Комментарии в Python
  12. Генераторы в Python
  13. Метод Event.wait() в Python
  14. Основы работы со списками
  15. Фильтрация входных данных в Python
  16. Поиск уникальных элементов строкой в Python
  17. Аннотации типов в Python
  18. Настройка вывода NumPy
  19. Управление виртуальными средами в Python
  20. Подписка на @SelectelNews
  21. HTTP-запросы с библиотекой Requests
  22. CLI-инструмент howdoi
  23. Метод join() для объединения элементов
  24. EMOT преобразование эмодзи в текст
  25. Подсчет часто встречающихся элементов
  26. Генераторы и сеты в Python
  27. Закрытие файла в Python
  28. Принцип одной функции
  29. Создание задания в Cron
  30. Цикл for в Python
  31. Векторизация в Python с NumPy.
  32. Область видимости переменных
  33. Декораторы в Python
  34. Решение переменной Шредингера
  35. Протокол управления контекстом
  36. Блок else в обработке исключений
  37. Retrying в Python: повторные вызовы
  38. Метод ior для битовых операций
  39. Python Менеджер контекста
  40. Форматирование строк в Python
  41. Получение обратного списка чисел
  42. Переворот списка в Python
  43. Отрицательные индексы списков
  44. Конкатенация списков в Python
  45. Работа с часовыми поясами в Python
  46. Добавление цвета в консоли
  47. Метод radd для пользовательских чисел

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