Курс 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
- Поиск индексов подстроки
- Расчет времени выполнения кода
- Управление памятью в Python
- Тестирование с responses
- Работа с комплексными числами
- Список импортированных модулей в Python
- Преобразование типов данных в set comprehension
- Методы Python для работы с данными
- Исправление ошибки NameError
- Протокол управления контекстом
- Разделение строк в Python
- Функции с необязательными аргументами
- Создание и операции с дробями
- Перебор элементов списка в Python
- Функция divmod() в Python
- Именованные срезы в Python
- Удаление элемента по индексу
- Доступ к локальным переменным
- Просмотр атрибутов и методов класса
- Создание списков в Python
- Howdoi — получение ответов из терминала
- Удаление файлов в Python
- Генератор бросков кубиков
- Метод remove() для удаления элемента из списка
- Глубокое копирование объектов
- Работа с функцией next() в Python
- Python OrderedDict и fromkeys() — работа с словарями
- Сортировка с помощью key
- Monkey Patching в Python
- Циклы for в Python
- Определение имен функций
- Проверка переменных окружения в Python
- Преобразование генераторов в циклы
- Пространство имен в Python
- Создание множества в Python
- CLI-инструмент howdoi
- Оператор распаковки в Python
- Логирование с Logzero
- Преобразование списков в словарь
- Операции с массивами в NumPy
- Оператор (*) в Python
- Генератор списка с условием if
- CSV строка разделение в Python
- Удаление элемента из списка
- Возврат нескольких значений
- Компиляция регулярных выражений















