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

时间:2014-10-31 22:07:28

标签: python operator-overloading

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

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

然后,文档解释了调用这些方法来实现增强的算术赋值**=的{​​{1}})

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

1 个答案:

答案 0 :(得分:2)

第三个论点只是与__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__的别名实现。