python - 具有 __index__() 方法的 Python 对象示例?

标签 python indexing int hex

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

例如,Hex文档状态:

If x is not a Python int object, it has to define an __index__() method that returns an integer.

这是为了自学。

最佳答案

大多数情况下,这些都是来自数学库的类型,例如 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

关于python - 具有 __index__() 方法的 Python 对象示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38572999/

相关文章:

Python 每个 PDF 页面多个 .PNG 文件

python - 在 ipython 中给出 "missing 1 required positional argument"的简单类定义

python - BOOTSTRAP 登录模板不适用于 FORM

python - Scipy - signaltools.lfilter() 函数实现

MySQL 为什么在此查询中 Distinct 关键字在自然语言模式下不起作用?

c++ - 使用 C++ 样式转换将 int 转换为 char

java - 为什么 int 不能与 null 进行比较,而 Integer 可以与 null 进行比较

Python - 数据清理

mysql - 未使用空间索引

python - 基于python中的int列对元组进行排序