Курс 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. Метод repr() в Python
  2. Извлечение чисел из текста
  3. Разделение строки в Python
  4. Пустой оператор pass в Python
  5. Создание и использование ChainMap
  6. Деление в Python
  7. Обрезка изображения с Pillow
  8. Наиболее частотные элементы с помощью Counter
  9. Форматирование строк в Python
  10. Создание детектора плагиата
  11. Блок else в циклах Python
  12. Функция reduce() из модуля functools
  13. Переопределение метода
  14. Работа с срезами в Numpy
  15. Обработка исключений в Python
  16. Преобразование регистра строк
  17. Python Calendar Usage
  18. Проверка дублей в списке.
  19. Настройка вывода в Numpy
  20. Изменение регистра данных
  21. Таймер обратного отсчета
  22. Преобразование данных в Python
  23. Фильтрация списка от «ложных» значений
  24. Форматирование вывода с F-строками
  25. Сглаживание списка
  26. Работа с WindowsPath()
  27. Структуры данных в Python
  28. Обработка исключения UnboundLocalError
  29. Создание функций высшего порядка
  30. Изменение списка срезами
  31. Форматирование строк в Python
  32. Работа с defaultdictами в Python
  33. Работа с URL-адресами в Python
  34. Фильтрация элементов с помощью islice
  35. Генераторы в Python
  36. Метод __index__ в Python
  37. Удаление эмодзи с помощью pandas
  38. Нахождение хеша для бесконечности и NaN в Python
  39. Форматирование чисел в Python
  40. Инвертирование словаря
  41. Группы исключений в Python
  42. Константы в модуле cmath
  43. Lambda-функция в Python: использование с map() и sum()
  44. Делегирование в Python

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