Курс 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"
- Функция map() в Python
- Работа с процессами в Python
- Изучение объектов с помощью dir()
- Базовые объекты Python
- Операции со строками в Python
- OrderedDict — упорядоченный словарь
- Профилирование кода
- Работа с асинхронными задачами в Python
- Визуализация пропусков данных
- Запрос DELETE с библиотекой requests
- Работа с срезами в Numpy
- Изменение элемента списка
- Закрытие файла в Python
- Метод hash в Python
- Экранирование символов в Python
- Декоратор Property в Python
- Частичное совпадение пользовательского ввода в Python 3.10
- Декоратор total_ordering для класса Point
- Инверсия списка/строки в Python
- Генераторные функции в Python
- Повторение элементов в Python
- Наиболее частотные элементы с помощью Counter
- Работа с YAML в Python: PyYAML.
- Игра «Угадывание чисел»
- Присвоение и ссылки
- Запуск файлового сервера
- Генераторы в Python
- Применение команды break
- Python reversed() vs срез[::-1]
- Регулярные выражения в Python
- Сохранение Unicode в JSON
- Сравнение def и lambda функций в Python
- Работа с IP-адресами в Python
- Переопределение метода
- Объединение списков с помощью zip
- Печать календаря
- Оператор space-invader
- Работа с defaultdictами в Python
- Функция __init__ в Python
- Обработка исключений в Python
- Получение ID текущего процесса
- Работа с OpenCV
- Работа с путями в Python
- Тестирование с responses
- Делегирование в Python















