Курс 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"
- Использование функции product
- Оформление текста в консоли с TermColor
- Преобразование данных в Python
- Проверка однородности элементов списка
- Работа с JSON в Python
- Итераторы в Python
- Проверка индексов коллекции
- Поиск индексов подстроки
- Условные выражения в Python
- Функция zip() в Python
- Использование обратной косой черты в f-строках
- Модуль inspect: получение информации о объектах
- Избегайте ошибку FileNotFoundError
- Управление пакетами с pip
- Структура строк в Python
- Метод сравнения объектов в Python
- Beautiful Soup — извлечение данных из HTML
- Оператор * в Python
- Обработка данных в Python
- Добавление элемента к кортежу
- Срез в Python
- Лямбда-функции в Python
- Работа с срезами в Python
- Курс Data Scientist в медицине
- Функции с дополнением
- Метод join для наборов
- Удаление falsy-значений из списка с помощью filter
- Форматирование чисел в Python
- Python enumerate() для работы с индексами
- Обновление и получение данных в SQLite
- Декоратор Property в Python
- Управление браузером с Selenium
- Динамическая типизация в Python
- Метод __complex__ в Python
- Построение графиков в Matplotlib
- Подсказки типов в Python
- Оператор del в Python
- Метод rrshift для пользовательских объектов
- Сортировка с помощью key
- Статическая типизация в Python
- Работа с deque из collections
- Работа с файлами и директориями в Python.
- Объединение списков с использованием itertools.chain
- Модуль subprocess: запуск внешних команд
- Сортировка элементов с OrderedDict
- Конкатенация строк в Python















