Курс 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"
- Циклы for в Python
- Логирование с Logzero: ротация файла
- Функция print() — вывод информации
- Эффективная конкатенация строк в Python
- Реализация метода __abs__ в Python
- Бесконечные списки в Python
- Форматирование строк в Python
- Копирование в Python
- Разделение списка на гнппы
- Преобразование символов в нижний регистр
- Импорт модулей в Python 3.12
- Конструктор в Python
- Форматирование строк с % в Python
- Применение функции к списку
- Создание матрицы в Python
- Namedtuple в Python
- Установка Python — Простое руководство
- Псевдонимы в Python
- Python: возвращение нескольких значений
- kwargs в Python
- Создание циклической ссылки
- Запуск внешних программ с subprocess
- inspect в Python: анализ кода
- Принципы SRP и OCP
- Деление в Python
- Открытие, чтение и закрытие файла
- Преобразование числа в восьмеричную строку
- Создание коллекций из выражения-генератора
- Создание словарей с defaultdict()
- Лямбда-функции в Python
- Python Метод sleep() из time
- Работа с областями видимости переменных
- Функции any() и all() в Python
- Метод get() в Python
- Метод rpow в Python
- Объединение словарей в Python
- Установка и использование Python-dateutil
- Скачать видео с YouTube
- Поиск HTML-элементов с BeautifulSoup
- Сортировка списка по индексам
- *args и **kwargs в Python
- Модуль Antigravity в Python 3
- Поиск шаблона в начале строки
- Новшества Flask 2.0
- Асинхронное программирование с asyncio















