Ускоряем Python-код с помощью PEP 570

Практические лайфхаки для разработчиков, DevOps и админов: Docker, Linux, Bash, Python, Golang, Ansible, логи и безопасность — только рабочие решения. Даем готовые команды, конфиги и приёмы диагностики, которые экономят часы и дни. Если нужно быстро настроить, отладить и обезопасить инфраструктуру — вы по адресу.

pythonpep 570позиционные аргументы

ℹ️ Когда вы создаёте функции в Python, использование именованных аргументов может замедлить их выполнение, особенно если функции вызываются часто. С введением PEP 570 можно явно указывать позиционные аргументы, что не только улучшит читаемость кода, но и повысит его производительность.

# Обычная функция с именованными аргументами

def process_data(data, log=True):
    # обработка данных
    pass

# Используем PEP 570 для объявления позиционных аргументов
def process_data_v2(data, /, log=True):
    # обработка данных
    pass

# Вызов с именованными аргументами
process_data(data, log=False)

# Вызов с позиционными аргументами
process_data_v2(data, log=False)

ℹ️ В функции process_data_v2 аргумент data можно передать только по позиции. Это ускоряет работу функции, так как позиционные аргументы обрабатываются быстрее, чем именованные.

Где это использовать:

  • Высоконагруженные функции, которые вызываются часто и могут содержать много аргументов.
  • API функции, где нужно обеспечить чёткое разделение между обязательными позиционными и дополнительными именованными аргументами.

✳️ Этот подход подходит для случаев, когда производительность критична, и каждое улучшение в скорости исполнения функций имеет значение, особенно в системах с интенсивными вычислениями.

tags: #полезно #разработка #python

🧭 @recura_tech

Скриншот тёмного редактора кода с примером Python-функций и использованием синтаксиса позиционных аргументов PEP 570
Пример кода с функциями process_data и process_data_v2, показывающий позиционные параметры.

Читайте так же