Курс 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"
- Сортировка HTML по CSS-селектору
- Комментарии в Python
- Списковый компрехеншен.
- Сравнение def и lambda функций в Python
- Фильтрация входных данных в Python
- Разделение строки с помощью re.split()
- Измерение времени выполнения кода
- Генераторы в Python
- Передача параметров в Python
- Инициализация объекта
- Работа с комплексными числами
- Ускорение обработки данных с %autoawait
- Создание новых функций с помощью functools.partial
- Удаление URL-адресов в Python
- Функция product() из itertools
- Инверсия списка/строки в Python
- Открытие, чтение и закрытие файла
- Декораторы в Python
- Работа со слайсами
- Фильтрация списка от «ложных» значений
- Оператор Walrus: правильное использование
- Секреты Python
- Метод __iand__ для пользовательских классов
- Основные операции с библиотекой Numpy
- Операции со строками в Python
- Работа со стеком в Python
- Применение функции к списку
- Принципы программирования
- Python Менеджер контекста
- Удаление элементов во время итерации
- Метод Enumerate() для списков
- Определение функций с необязательными аргументами
- Операции с числами в Python
- Встроенные функции Python
- Решатель судоку на Python с pygame
- Оператор «моржа» (Walrus Operator)
- Переворот списка в Python
- Аргументы *args и **kwargs
- Оператор space-invader
- Анонимные функции в Python
- Генераторы по генератору
- Подсчет элементов с помощью Counter из collections
- Создание объекта timedelta
- Работа с Requests для HTTP-запросов
- Переменная Шредингера
- Magic Commands — улучшение работы с Python
- Присоединение элементов коллекции















