Курс 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
- split() — разделение строки
- Декоратор @override
- Оператор continue в Python
- Запрос DELETE с библиотекой requests
- Хранение данных
- Повторение элементов списков
- Безопасные SQL-запросы в Python 3.11
- Создание копии итератора
- Работа с YAML в Python: PyYAML.
- Работа с библиотекой xkcd
- Добавление элементов в список
- Работа с argparse
- Модуль pprint: улучшение вывода данных
- Сортировка элементов с OrderedDict
- Обратный список чисел
- Подписка на @SelectelNews
- Работа с комплексными числами
- Удаление URL-адресов в Python
- Передача аргументов через **arguments
- Объявление переменных в Python
- Управление пакетами с pip
- Оптимизация методов в Python 3.7
- Mad Libs Generator
- Генераторы в Python
- Работа с датами в Python
- Работа с комплексными числами
- Сортировка слиянием
- Работа с Telegram API на Python
- Подсчет часто встречающихся элементов
- Операции с массивами в NumPy
- Создание функций высшего порядка
- Переменные класса и экземпляра
- Исключение NotImplementedError
- Регистрация на курсы SF Education
- Получение имени функции с помощью inspect
- Рациональные числа в Python
- Возврат значений из генератора
- Создание и обучение модели с Keras
- Методы __repr__ и __str__ в Python
- Удаление элементов из списка в Python
- Подсказки типов в Python
- Функция zip() для объединения списков
- Создание генераторов















