Курс 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
- Получение размера объекта с sys.getsizeof()
- Избегайте изменяемых аргументов
- Участие в сообществе @selectel
- Просмотр файла в Jupyter Noteboo
- Работа с датой и временем в Python
- Объединение словарей в Python
- Concrete Paths в Python
- Подсказки типов в Python
- Тип CodeType в Python.
- Справка по импортированным модулям
- Преобразование данных в Python
- Закрытие файла в Python
- Уникальность ключей в словаре
- Метод join() для объединения строк
- Создание вложенного генератора
- Создание новых списков через list comprehensions
- Выбор редактора кода.
- Доступ к локальным переменным
- Создание списка дат
- Создание и использование ChainMap
- Оптимизация методов в Python 3.7
- Символ подчеркивания в Python
- Имена объектов в Python
- Обработка исключений в Python
- Упрощенный вывод данных в Python
- Локальные переменные.
- Модуль itertools: эффективная работа с итераторами
- Исправление ошибки NameError
- Считывание бинарного файла в Python
- Асинхронное программирование с asyncio
- Обработка ошибок в Python
- Использование type hints
- Ограничение итераций в Python
- Представление бесконечности в Python
- Подсказки типов в Python
- Введение в PyTorch
- Уникальные значения из списка
- Преобразование числа в восьмеричную строку
- Проверка типов с использованием isinstance
- Функция с *args.
- Оператор (*) в Python
- Особенности ключей словаря в Python
- Генераторы данных
- Переменная Шредингера
- Компиляция регулярных выражений
- %pinfo: получение информации об объекте
- Профилирование кода на Python















