Курс 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. Enum в Python
  2. Копирование и вставка текста в Python
  3. Проверка ввода с помощью isdigit
  4. Генерация случайных чисел в Python
  5. Функция enumerate() в Python
  6. Работа со строками в Python
  7. Генераторы в Python
  8. Класс Counter() для подсчета элементов
  9. Деление в Python
  10. Генератор надежных паролей
  11. Кортеж в Python: создание и использование
  12. Преобразование вложенного списка
  13. Numpy: объединение массивов
  14. Реверс строки и списка в Python.
  15. Функция zip() в Python
  16. Возврат нескольких значений
  17. Отрицательные индексы списков в Python
  18. Flask: создание веб-приложений
  19. Установка Home Assistant
  20. Транспонирование матрицы
  21. Оператор морж в Python 3.8
  22. Генераторы в Python
  23. Функция sleep() в Python
  24. Python: изменяемые и неизменяемые коллекции
  25. Загрузка постов Instagram
  26. Запуск внешнего кода в Jupyter
  27. Подробная информация о %pinfo
  28. Логирование в Python
  29. Повторение элементов в Python
  30. Многопроцессорное программирование в Python
  31. Создание директории в Python
  32. Работа с CSV файлами в Python
  33. Проверка кортежей.
  34. Определение имен функций
  35. Приближение чисел в Python
  36. Оператор * в Python
  37. Удаление дубликатов из списка
  38. Регистрация на TenChat
  39. Подписка на SelectelNews в Twitter
  40. Определение основы слова с showballstemmer
  41. Генерация случайных чисел в Python
  42. Преобразование букв в нижний регистр
  43. Переопределение метода __rshift__
  44. Функция zip() в Python
  45. Модуль sys: основы
  46. Декоратор для группы пользователей в Django

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