の構文では、のコールが引数としてindice
にトリガーされます。
このショートカットは、またslice(x, y, z)
を表現するための構文x:y:z
の使用を可能にし、それがどのように使われるか通常であるが、それは限り、あなたの__getitem__
はこれらをサポートしているとして、タプルや文字列のように、インデックスの他のタイプのためにも取り付けることができ。
このコードでは、次元ごとのスライスを含むタプルを使用して、2次元配列をスライスするためのnumpyの方法の一部として使用されます。今後の参考のために
、あなたはこのクラスでテストすることができます。
>>> class sliced:
... def __getitem__ (self, index):
... print(index)
>>> d = sliced()
>>> d[:50, 1]
(slice(None, 50, None), 1)
その特定の場合のために、コンマは、その最初のインデックスタプルを(のような1, 2
はREPLで入力したならば)、作ります項目は:50
で、開始点がないスライスとして評価され、末尾が50
でステップが指定されていません(x:y:z
の表記は空白にNone
を埋め込み、2番目の:
は不要です)。
その表記は['numpy']に特有です(https://docs.scipy.org/doc/numpy-1.12.0/reference/arrays.indexing.html#basic-slicing-and)。 -indexing) –
@MosesKoledoye表記法はnumpyで実装されていますが、Urielの答えが示すように、どのクラスでもそれを利用することができます。 –
@MosesKoledoyeはPythonでサポートされていますが、 'numpy'以外では使用されません。 –