• add(self, other)
    • object.sub(self, other)
    • object.mul(self, other)
    • object.matmul(self, other)
    • object.truediv(self, other)
    • object.floordiv(self, other)
    • object.mod(self, other)
    • object.divmod(self, other)
    • object.pow(self, other[, modulo])
    • object.lshift(self, other)
    • object.rshift(self, other)
    • object.and(self, other)
    • object.xor(self, other)
    • object.or(self, other)
    • 调用这些方法来实现二进制算术运算 (+, -, , @, /, //, %, , pow(), *, <<, >>, &, ^, |)。例如,求表达式 x + y 的值,其中 x 是具有 方法的类的一个实例,则会调用 x.add(y)divmod() 方法应该等价于使用 和 mod(),它不应该被关联到 。请注意如果要支持三元版本的内置 pow() 函数,则 的定义应该接受可选的第三个参数。

    如果这些方法中的某一个不支持与所提供参数进行运算,它应该返回 NotImplemented

    • object.radd(self, other)
    • object.rsub(self, other)
    • object.rmul(self, other)
    • object.rmatmul(self, other)
    • object.rfloordiv(self, other)
    • rmod(self, other)
    • object.rdivmod(self, other)
    • object.rpow(self, other)
    • object.rlshift(self, other)
    • object.rrshift(self, other)
    • object.rand(self, other)
    • object.rxor(self, other)
    • object.ror(self, other)
    • 调用这些方法来实现具有反射(交换)操作数的二进制算术运算 (+, -, , @, /, //, %, , pow(), *, <<, >>, &, ^, |)。这些成员函数仅会在左操作数不支持相应运算 且两个操作数类型不同时被调用。4 例如,求表达式 x - y 的值,其中 y 是具有 方法的类的一个实例,则当 x.sub(y) 返回 NotImplemented 时会调用 y.rsub(x)

    注解

    • object.iadd(self, other)
    • object.isub(self, other)
    • object.imul(self, other)
    • object.imatmul(self, other)
    • object.itruediv(self, other)
    • object.ifloordiv(self, other)
    • object.imod(self, other)
    • object.ipow(self, other[, modulo])
    • object.ilshift(self, other)
    • object.iand(self, other)
    • object.ixor(self, other)
    • object.ior(self, other)
    • 调用这些方法来实现扩展算术赋值 (+=, -=, , @=, /=, //=, %=, *=, <<=, >>=, &=, ^=, |=)。这些方法应该尝试进行自身操作 (修改 self) 并返回结果 (结果应该但并非必须为 self)。如果某个方法未被定义,相应的扩展算术赋值将回退到普通方法。例如,如果 x 是具有 iadd() 方法的类的一个实例,则 x += y 就等价于 x = x.iadd(y)。否则就如 x + y 的求值一样选择 x.add(y)y.radd(x)。在某些情况下,扩展赋值可导致未预期的错误 (参见 ),但此行为实际上是数据模型的一个组成部分。
    • object.neg(self)
    • object.pos(self)
    • object.abs(self)
    • object.invert(self)
    • 调用此方法以实现一元算术运算 (-, +, abs()~)。
    • object.complex(self)
    • object.int(self)
    • object.float(self)
    • 调用这些方法以实现内置函数 complex(), 和 float()。应当返回一个相应类型的值。
    • object.index(self)
    • 调用此方法以实现 operator.index() 以及 Python 需要无损地将数字对象转换为整数对象的场合(例如切片或是内置的 , hex() 和 函数)。 存在此方法表明数字对象属于整数类型。 必须返回一个整数。

    注解

    • object.round(self[, ndigits])
    • object.trunc(self)
    • object.floor(self)
    • object.ceil(self)

    如果未定义 int() 则内置函数 会回退到