具有__index __()方法的Python对象的示例?

时间:2016-07-25 16:27:42

标签: python indexing int hex

除了__index__()之外,int方法的Python对象有哪些示例?

例如,Hex文档状态:

  

如果x不是Python int对象,则必须定义__index__()   返回整数的方法。

这是为了自学。

1 个答案:

答案 0 :(得分:2)

大多数情况下,这些类型来自NumPySymPy等数学库。这些库有自己的整数类型(有充分的理由),但是由于__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]: 2