详解 Python 的二元算术运算,为什么说减法只是语法糖?
👆 “ Python猫 ” ,一个值得加星标的 公众号 原题 | Unravelling binary arithmetic operations in Python 作者 | Brett Cannon 译者 | 豌豆花下猫(“Python猫”公众号作者) 声明 | 本翻译是出于交流学习的目的,基于 CC BY-NC-SA 4.0 授权协议。为便于阅读,内容略有改动。 大家对我解读属性访问的博客文章反应热烈,这启发了我再写一篇关于 Python 有多少语法实际上只是语法糖的文章。在本文中,我想谈谈二元算术运算。 具体来说,我想解读减法的工作原理: a - b 。我故意选择了减法,因为它是不可交换的。这可以强调出操作顺序的重要性,与加法操作相比,你可能会在实现时误将 a 和 b 翻转,但还是得到相同的结果。 查看 C 代码 按照惯例,我们从查看 CPython 解释器编译的字节码开始。 >>> def sub () : a - b ... >>> import dis >>> dis.dis(sub) 1 0 LOAD_GLOBAL 0 (a) 2 LOAD_GLOBAL 1 (b) 4 BINARY_SUBTRACT 6 POP_TOP 8 LOAD_CONST 0 ( None ) 10 RETURN_VALUE 看起来我们需要深入研究 BINARY_SUBTRACT 操作码