Курс 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
- Преобразование строк в числа с плавающей запятой
- Функции map() и reduce() в Python
- Применение функции к каждому элементу списка
- Декораторы с @wraps
- Сортировка в Python
- Оценка точности модели
- Копирование в Python
- Работа с itertools
- Установка random seed в Python
- List Comprehension Tutorial
- Работа со строками в Python
- Перехват исключений в Python
- Работа с модулем bisect
- Метод сравнения объектов в Python
- Безопасные SQL-запросы в Python 3.11
- Работа с URL-адресами в Python
- Изменение регистра данных
- Декоратор защиты анонимных пользователей
- Участие в сообществе @selectel
- Метод radd для пользовательских чисел
- Построение графиков в Matplotlib
- Функции all() и any() в Python
- Удаление элемента из списка в Python
- IPython и Jupyter Notebook: руководство
- PEP-401: оператор
- Функция с **kwargs в Python
- Введение в Python
- Атрибуты класса и экземпляра в Python
- Перебор элементов списка в Python
- Получение списка кортежей из словаря
- Условные выражения в Python
- Пропуск строк в файле с itertools
- ROT13 Шифр Цезаря в Python
- Логирование с Logzero
- Создание GUI на Tkinter
- Повторение элементов в Python
- Работа с файлами в Python
- Логический оператор «and» в Python
- Метод __iand__ для пользовательских классов
- Создание GUI с Tkinter: Entry
- Работа с getopt
- Итерация по копии коллекции
- Функция с *args.
- Извлечение статей с newspaper3k















