Курс 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. Получение размера объекта с sys.getsizeof()
  3. Избегайте изменяемых аргументов
  4. Участие в сообществе @selectel
  5. Просмотр файла в Jupyter Noteboo
  6. Работа с датой и временем в Python
  7. Объединение словарей в Python
  8. Concrete Paths в Python
  9. Подсказки типов в Python
  10. Тип CodeType в Python.
  11. Справка по импортированным модулям
  12. Преобразование данных в Python
  13. Закрытие файла в Python
  14. Уникальность ключей в словаре
  15. Метод join() для объединения строк
  16. Создание вложенного генератора
  17. Создание новых списков через list comprehensions
  18. Выбор редактора кода.
  19. Доступ к локальным переменным
  20. Создание списка дат
  21. Создание и использование ChainMap
  22. Оптимизация методов в Python 3.7
  23. Символ подчеркивания в Python
  24. Имена объектов в Python
  25. Обработка исключений в Python
  26. Упрощенный вывод данных в Python
  27. Локальные переменные.
  28. Модуль itertools: эффективная работа с итераторами
  29. Исправление ошибки NameError
  30. Считывание бинарного файла в Python
  31. Асинхронное программирование с asyncio
  32. Обработка ошибок в Python
  33. Использование type hints
  34. Ограничение итераций в Python
  35. Представление бесконечности в Python
  36. Подсказки типов в Python
  37. Введение в PyTorch
  38. Уникальные значения из списка
  39. Преобразование числа в восьмеричную строку
  40. Проверка типов с использованием isinstance
  41. Функция с *args.
  42. Оператор (*) в Python
  43. Особенности ключей словаря в Python
  44. Генераторы данных
  45. Переменная Шредингера
  46. Компиляция регулярных выражений
  47. %pinfo: получение информации об объекте
  48. Профилирование кода на Python

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