Запятые для оптимизации переменных Python

Sep 09 2020

У меня возник вопрос, как можно отформатировать код Python.

 (q, a), b = divmod(b, a), a
        y0, y1 = y1, y0 - q * y1

Для чего-то вроде выше, как работают запятые для демонстрации переменных? Может ли кто-нибудь показать, как этот код будет выглядеть без использования запятых между y0 и y1 или (q, a)? Я знаю, что это должен быть какой-то способ оптимизации кода.

Ответы

1 YannickFunk Sep 09 2020 at 21:29

Запятые в присваиваниях используются для создания кортежей с правой стороны и распаковки с левой стороны , например:

x, y = 1, 3

Что функционально эквивалентно

x = 1
y = 3

Или например распаковка списка , например:

example_list = [1, 4, 5]
x, y, z = example_list

Что функционально эквивалентно:

x = example_list[0]
y = example_list[1]
z = example_list[2]

Итак, ваш код без "запятых" будет:

(q, a) = divmod(b, a) # unpacking
b = a
old_y0 = y0
y0 = y1
y1 = old_y0 - q * y1

Причина этого в основном, convenienceа не в оптимизации кода.