Курс 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. Сортировка HTML по CSS-селектору
  2. Комментарии в Python
  3. Списковый компрехеншен.
  4. Сравнение def и lambda функций в Python
  5. Фильтрация входных данных в Python
  6. Разделение строки с помощью re.split()
  7. Измерение времени выполнения кода
  8. Генераторы в Python
  9. Передача параметров в Python
  10. Инициализация объекта
  11. Работа с комплексными числами
  12. Ускорение обработки данных с %autoawait
  13. Создание новых функций с помощью functools.partial
  14. Удаление URL-адресов в Python
  15. Функция product() из itertools
  16. Инверсия списка/строки в Python
  17. Открытие, чтение и закрытие файла
  18. Декораторы в Python
  19. Работа со слайсами
  20. Фильтрация списка от «ложных» значений
  21. Оператор Walrus: правильное использование
  22. Секреты Python
  23. Метод __iand__ для пользовательских классов
  24. Основные операции с библиотекой Numpy
  25. Операции со строками в Python
  26. Работа со стеком в Python
  27. Применение функции к списку
  28. Принципы программирования
  29. Python Менеджер контекста
  30. Удаление элементов во время итерации
  31. Метод Enumerate() для списков
  32. Определение функций с необязательными аргументами
  33. Операции с числами в Python
  34. Встроенные функции Python
  35. Решатель судоку на Python с pygame
  36. Оператор «моржа» (Walrus Operator)
  37. Переворот списка в Python
  38. Аргументы *args и **kwargs
  39. Оператор space-invader
  40. Анонимные функции в Python
  41. Генераторы по генератору
  42. Подсчет элементов с помощью Counter из collections
  43. Создание объекта timedelta
  44. Работа с Requests для HTTP-запросов
  45. Переменная Шредингера
  46. Magic Commands — улучшение работы с Python
  47. Присоединение элементов коллекции

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