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()
和 函数)。 存在此方法表明数字对象属于整数类型。 必须返回一个整数。
注解
如果未定义 int()
则内置函数 会回退到 。