Bu kontrol etmek son derece kolaydır
a, b, c = [1, 2, 3]
eserler:
>>> import dis
>>> dis.dis(compile('a,b,c=1,2,3','','exec'))
1 0 LOAD_CONST 4 ((1, 2, 3))
3 UNPACK_SEQUENCE 3
6 STORE_NAME 0 (a)
9 STORE_NAME 1 (b)
12 STORE_NAME 2 (c)
15 LOAD_CONST 3 (None)
18 RETURN_VALUE
>>> dis.dis(compile('(a,b,c)=(1,2,3)','','exec'))
1 0 LOAD_CONST 4 ((1, 2, 3))
3 UNPACK_SEQUENCE 3
6 STORE_NAME 0 (a)
9 STORE_NAME 1 (b)
12 STORE_NAME 2 (c)
15 LOAD_CONST 3 (None)
18 RETURN_VALUE
>>>
görüyor musunuz? Bunlar tamamen gereksiz parantez kesinlikle oluşturulan ve yürütüldüğünde baytkoduna hiçbir fark - sadece diyelim ki a+b
ve (a+b)
üretmek ve birbirlerine tam olarak aynı bayt kodu çalıştırır, gibi. Dolayısıyla, parantezleri fazladan parantez eklemek istiyorsanız, kendinizi yıkın - kodunuzu okuyan insanlar bunlardan hoşlanmayabilir, ancak bunu yürüten kişiler asla farkına bile varmayacaktır. Sadece, neden iki çift gereksiz parantezde dursun? Ayrı ayrı parantezin altı çifti (veya herhangi bir sayı, gerçekten) yine de tam olarak aynı kodu üretmektedir. Bkz.
>>> dis.dis(compile('(((a,b,c)))=(((1,2,3)))','','exec'))
1 0 LOAD_CONST 4 ((1, 2, 3))
3 UNPACK_SEQUENCE 3
6 STORE_NAME 0 (a)
9 STORE_NAME 1 (b)
12 STORE_NAME 2 (c)
15 LOAD_CONST 3 (None)
18 RETURN_VALUE
>>>
. Bir kez daha fazla parantezin bariz minimum sayısını (hiç yok: onlar gereksiz, her şeyden önce ;-), tam olarak
nerede durdurmak mı? -) Ve neden orada, henüz bir daha eklemek için "ücretsiz" çift ... ya da iki ... ya da ...? -)
İşte bilgisayar bilimlerinde geleceğiniz için bir ipucu (30 + yıldır işteyim). ** Bu çoklu optimizasyon ifadesinin programınızı kesinlikle öldürdüğünü ** kanıtlayabilene kadar, bu tür bir optimizasyon sorusuna zaman harcamayın. Bir şeyin kanıtlanamayacak kadar yavaş olduğunu ** kanıtlayana kadar, onu kullan. Performans hakkında endişelenmeden her şeyi kullanın. Dili icat eden milletler bunun için çoktan endişeleniyorlar. –