Курс 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. Декоратор Ajax required
  2. Роль ключевого слова self
  3. Измерение времени выполнения кода в Python
  4. Вызов функций по строке в Python.
  5. Использование type hints
  6. Функции map, filter и reduce
  7. Декоратор проверки активности
  8. Вычисление разности множеств в Python
  9. Проверка однородности элементов списка
  10. Функция map() и ленивая оценка
  11. Автоматизация действий с Pyautogui
  12. Вычисление логарифмов в Python
  13. Работа с Path в Python
  14. Применение функций в Python
  15. Работа с модулем Calendar
  16. Форматирование чисел в Python
  17. Гибкие функции Python
  18. Проверка строки на палиндром
  19. Разделение строки на подстроки в Python
  20. Работа с Colorama
  21. Создание и использование ChainMap
  22. Типы возвращаемых значений в Python
  23. Python enumerate() для работы с индексами
  24. Модуль Operator в Python
  25. Перезагрузка оператора в Python
  26. Игра «Угадывание чисел»
  27. Проверка типов с помощью isinstance
  28. Разработка Telegram-ботов
  29. Копирование файлов с shutil()
  30. Условные выражения в Python
  31. Зарезервированные слова в Python
  32. Передача словаря через **kwargs
  33. Операции с кортежами
  34. Проекты на Python
  35. Повторение и перенос строки
  36. Генерация QR-кодов с библиотекой qrcode
  37. Список импортированных модулей в Python
  38. Проверка наличия элемента в списке
  39. Цикл for в Python
  40. Преобразование списка в словарь через генератор
  41. Метод join для объединения строк
  42. Структурирование данных с Pydantic
  43. Конкатенация строк с join() в Python
  44. Константы в модуле cmath

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