有哪些Python对象的例子,这些对象有一个__index__()方法而不是int
例如,十六进制文档状态:
如果
x不是Python对象,它必须定义一个返回整数的__index__()方法。
这是为了自学。
发布于 2016-07-25 16:38:17
大多数情况下,这些类型来自数学库,如NumPy或SymPy。这些库有它们自己的整数类型(出于很好的理由),但是多亏了__index__,它们的特殊整数可以用作列表索引,或者像普通整数一样传递给hex。
In [9]: import sympy
In [10]: x = sympy.Integer(1)
In [11]: x # It looks like a regular 1, but it's not.
Out[11]: 1
In [12]: x/2 # This object has special behavior that makes sense for SymPy...
Out[12]: 1/2
In [13]: [1, 2, 3][x] # but you can still use it for things like indexing.
Out[13]: 2https://stackoverflow.com/questions/38572999
复制相似问题