Python源代码在执行之前会转换为字节码。您可以使用反汇编器
dis查看字节码的样子,从而了解交换在内部如何工作:
import dis>>> def f(a,b): a, b = b, a>>> dis.dis(f) 10 LOAD_FAST 1 (b) 3 LOAD_FAST 0 (a) 6 ROT_TWO 7 STORE_FAST 0 (a) 10 STORE_FAST 1 (b) 13 LOAD_ConST 0 (None) 16 RETURN_VALUE
简单来说,它将a和b的值压入堆栈,旋转(交换)顶部的两个元素,然后再次d出这些值。
也可以看看:
- Python字节码指令
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)