Курс 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"
- Конкатенация строк с методом join()
- Проверка индексов коллекции
- Разделение строк в Python
- Python: цикл for и оператор присваивания
- Переопределение метода len
- Проверка версии Python
- Вывод букв строки в Python
- Получение ID процесса
- Инициализация объекта
- Лимиты на ресурсы Python
- Курс по дообучению ChatGPT
- Работа с классами данных
- Объединение списков в Python
- Оператор объединения словарей
- PrettyTable: создание таблицы
- Генераторы списков
- Создание новых функций через partial
- Транспонирование 2D-массива с помощью zip
- Метод join() для объединения строк
- Сравнение строк в Python
- Работа с файлами в Python
- Извлечение новостей с помощью newspaper3k
- Управление импортом в Python
- Структурирование данных с Pydantic
- Python и Монти Пайтон
- JMESPath в Python
- Введение в Python
- Обработка ошибки IndexError
- Создание списков в Python
- Расчет времени выполнения
- Установка пакета в Python
- Карта бомбоубежищ в Москве и Питере
- List Comprehension Tutorial
- Подсказки типов в Python
- Преобразование Word в PDF с Spire.Doc
- Работа со случайными элементами
- Уникальность ключей в словаре
- Python: возвращение нескольких значений
- Путь к интерпретатору Python
- Оператор del в Python
- Транспонирование 2D-массива с помощью zip
- Определение индекса элемента списка
- Получение текущей директории
- Обработка исключений в Python
- Распаковка аргументов в Python
- Преобразование строк в числа с плавающей запятой
- Методы HTTP запросов в Flask















