__getitem__
理解するために簡単な例を見てみましょう:
(1) __getitem__ 専用メソッドは非常にシンプルです。通常のクリア、キー、および値のメソッドと同様に、辞書にリダイレクトし、辞書の値を返すだけです。しかし、それをどうやって呼ぶのでしょうか?ああ、__getitem__ を直接呼び出すこともできますが、実際にはそうはなりません。ここでは、それがどのように機能するかを示すためだけにこれを実行しています。 __getitem__ を使用する正しい方法は、Python にそれを呼び出させることです。
(2) これは、辞書値を取得するために使用する構文のように見えますが、実際には、期待した値を返します。ここに隠しリンクがあります。Python は密かにこの構文を f.__getitem__("name") のメソッド呼び出しに変換しました。これが、__getitem__ がプライベート クラス メソッドである理由です。自分で呼び出すことができるだけでなく、正しい構文を使用して Python に呼び出すこともできます。
スライスを使用してオブジェクトをスライスします
リストには魔法のスライス方法があります:
Fib でエラーが報告されました。その理由は、 __getitem__() に渡されるパラメーターが int またはスライス オブジェクトである可能性があるため、判断する必要があるためです。
リーリーリーリー
リーリー
また、オブジェクトをdictとみなす場合、__getitem__()のパラメータはstrなどのキーとして使用できるオブジェクトである場合もあります。
それに対応するのは __setitem__() メソッドで、オブジェクトをリストまたは辞書として扱い、セットに値を割り当てます。最後に、要素を削除するための __delitem__() メソッドがあります。
つまり、上記の方法を通じて、定義したクラスは Python に付属のリスト、タプル、辞書と何ら変わらない動作をします。これは完全に動的言語の「ダック タイピング」によるものであり、強制的な継承は必要ありません。インターフェースの。