Jest to niezwykle łatwe do sprawdzenia, z modułem dis
:
>>> 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
>>>
zobaczyć? Te całkowicie nadmiarowe nawiasy powodują całkowitą różnicę w stosunku do kodu bajtowego, który jest generowany i wykonywany - tak jak, powiedzmy, a+b
i (a+b)
wygeneruje i wykona dokładnie ten sam kod bajtowy, co każdy inny. Jeśli więc chcesz dodać nadmiarowe nawiasy, zrób sobie przerwę - ludzie, którzy czytają twój kod, mogą ich nie lubić, ale ci, którzy dopiero je wykonują, nigdy nie zauważą. Tylko dlaczego warto zatrzymać się na dwóch parach zbędnych nawiasów? Zobacz,
>>> 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
>>>
sześć par zbędnych nawiasów (lub dowolnej liczbie, naprawdę) nadal produkować dokładnie ten sam kod. Po opuszczeniu oczywistej minimalnej liczby zbędnych nawiasów (wcale: w końcu są zbędne ;-), dokładnie , gdzie przestajesz? -) I dlaczego, kiedy jest "wolny", aby dodać jeszcze jeden parę ... lub dwie ... lub trzy ...? -)
Oto wskazówka dla twojej przyszłości w informatyce (jestem w branży od ponad 30 lat). Nie trać czasu na tego rodzaju pytanie optymalizacyjne, dopóki ** nie udowodnisz, że oświadczenie o wielu zadaniach absolutnie zabiło twój program. Dopóki nie masz ** dowodu **, że coś jest niedopuszczalnie wolne, użyj go. Używaj wszystkiego, nie martwiąc się o wydajność. Ludzie, którzy wymyślili język, martwili się już o ciebie. –