Python Değişkenlerini optimize etmek için virgül

Sep 09 2020

Python kodunun nasıl biçimlendirilebileceğine dair bir sorum vardı.

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

Yukarıdaki gibi bir şey için, değişkenleri göstermek için virgül nasıl çalışır? Birisi, y0 ve y1 arasında virgül veya (q, a) kullanılmadan bu kodun nasıl görüneceğini gösterebilir mi? Kodu optimize etmenin bir çeşit yolu olduğunu biliyorum.

Yanıtlar

1 YannickFunk Sep 09 2020 at 21:29

Atamalardaki virgüller sağ tarafta demet oluşturmak ve sol tarafta ambalajı açmak için kullanılır , örneğin:

x, y = 1, 3

İşlevsel olarak eşdeğer olan

x = 1
y = 3

Veya örneğin paket açma listesi , örneğin:

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

İşlevsel olarak eşdeğer olan:

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

Yani "virgül" içermeyen kodunuz şöyle olacaktır:

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

Bunun nedeni çoğunlukla conveniencekodun optimizasyonu değil.