1
__index__()
メソッドがint
以外のPythonオブジェクトの例は何ですか?例えば__index __()メソッドを持つPythonオブジェクトの例?
、Hexドキュメントの状態:
x
がPythonのintオブジェクトでない場合、それは整数を返す__index__()
方法を定義しなければなりません。
これは自己学習のためのものです。
__index__()
メソッドがint
以外のPythonオブジェクトの例は何ですか?例えば__index __()メソッドを持つPythonオブジェクトの例?
、Hexドキュメントの状態:
x
がPythonのintオブジェクトでない場合、それは整数を返す__index__()
方法を定義しなければなりません。
これは自己学習のためのものです。
ほとんどは、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]: 2
整数として解釈できるものはどれも。例えば**浮動小数点数ではありません(整数に変換できますが、情報は失われます)。 'bool'は' int'のサブクラスなのでそのメソッドを持っています。そのようなオブジェクトはシーケンスのインデックスとして使用できるという考えがあります。 –