看起来Python编译器使用此构造优化了临时元组:
码:
import disdef swap1(): a=5 b=4 a, b = b, adef swap2(): a=5 b=4 c = a a = b b = cprint 'swap1():'dis.dis(swap1)print 'swap2():'dis.dis(swap2)
输出:
swap1(): 60 LOAD_ConST 1 (5) 3 STORE_FAST 0 (a) 76 LOAD_ConST 2 (4) 9 STORE_FAST 1 (b) 8 12 LOAD_FAST 1 (b) 15 LOAD_FAST 0 (a) 18 ROT_TWO 19 STORE_FAST 0 (a) 22 STORE_FAST 1 (b) 25 LOAD_ConST 0 (None) 28 RETURN_VALUE swap2(): 110 LOAD_ConST 1 (5) 3 STORE_FAST 0 (a) 126 LOAD_ConST 2 (4) 9 STORE_FAST 1 (b) 13 12 LOAD_FAST 0 (a) 15 STORE_FAST 2 (c) 14 18 LOAD_FAST 1 (b) 21 STORE_FAST 0 (a) 15 24 LOAD_FAST 2 (c) 27 STORE_FAST 1 (b) 30 LOAD_ConST 0 (None) 33 RETURN_VALUE
两个加载,一个
ROT_TWO和两个保存,而三个加载和三个保存。您不太可能找到更快的机制。



