python ipow:如何使用第三个参数?

Xof*_*off 5 python operator-overloading

在“数据模型”部分的python官方文档中,该__ipow__方法定义为:

object.__ipow__(self, other[, modulo])
Run Code Online (Sandbox Code Playgroud)

然后,文档说明了调用这些方法来实现增强的算术分配**=for __ipow__

但是**=,允许使用modulo参数的语法是什么?

Mar*_*ers 3

第三个参数只是为了与 对称__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__