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

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

object.__ipow__(self, other[, modulo])

然后,文档解释说调用这些方法来实现增强的算术赋值(** = for __ipow__)

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

最佳答案 第三个参数只是为了与__pow__对称.

该参数包含在原始的‘add in-place operator equivalents’ commit中,但除了直接调用__ipow__方法之外,不支持从Python代码中使用它.

例如,INPLACE_POWER操作码处理passes in 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;

最有可能的是,即使从C代码中实现__ipow__作为__pow__ trivial的别名也是如此.

点赞