Курс 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"
- Хеширование паролей с солью
- Введение в Python
- Оформление текста в консоли с TermColor
- Работа с модулем Calendar
- Декораторы в Python
- Структура данных deque в Python
- Итерация по коллекции в Python
- Замена текста с помощью sub
- Создание спинбокса в tkinter
- Метод __getitem__ в Python
- Python: возвращение нескольких значений
- Concrete Paths — метод .with_suffix()
- Перевод двоичного кода в целое число
- Рациональные числа в Python
- Преобразование Excel в PDF с Spire.XLS
- Инверсия списков и строк в Python
- Изменение элемента списка
- Скрытие вывода данных
- Модуль array: создание и использование массивов
- Логирование с Logzero
- Оператор @ для умножения матриц
- Модуль inspect: получение информации о объектах
- Метод rmatmul для обратного матричного умножения
- Добавление элемента к кортежу
- Метод remove() для удаления элемента из списка
- Синхронизация доступа к ресурсам
- Метод get для словарей
- Определение функций с необязательными аргументами
- Генераторы в Python
- Работа с библиотекой xkcd
- Обход элементов в Python
- Работа с многоуровневыми словарями в Python
- Имена объектов в Python
- Сериализация данных в JSON с помощью json.dumps
- Мониторинг работы программы Py-spy
- Анонимные функции в Python
- Удаление знаков препинания в Python
- Подсказки типов в Python
- Функции в Python
- Хэш-функции в Python
- Работа с пользовательским вводом
- Секреты Python
- Декораторы для регистрации функций
- Гибкие функции Python
- Отправка поздравлений по дню рождения
- Установка максимального количества цифр
- Настройка вывода в Numpy















