Xof*_*off 5 python operator-overloading
在“数据模型”部分的python官方文档中,该__ipow__方法定义为:
object.__ipow__(self, other[, modulo])
Run Code Online (Sandbox Code Playgroud)
然后,文档说明了调用这些方法来实现增强的算术分配(**=for __ipow__)
但是**=,允许使用modulo参数的语法是什么?
第三个参数只是为了与 对称__pow__。
该参数包含在原始的“添加就地运算符等效项”提交中,但除了直接__ipow__调用该方法之外,不支持从 Python 代码中使用它。
例如,INPLACE_POWER操作码处理作为第三个参数传入:None
case INPLACE_POWER:
w = POP();
v = TOP();
x = PyNumber_InPlacePower(v, w, Py_None);
Py_DECREF(v);
Py_DECREF(w);
SET_TOP(x);
if (x != NULL) continue;
break;
Run Code Online (Sandbox Code Playgroud)
最有可能的是,即使是 C 代码,它也可以__ipow__作为一个别名来实现。__pow__