__getitem__ の紹介: Python のマジック メソッド

__getitem__ の紹介: Python のマジック メソッド

ソースノード: 2011206

__getitem__ の紹介: Python のマジック メソッド
著者による画像

Python は、上級ユーザーでさえ慣れていない可能性のある多くの概念を持つ魔法の言語です。 ダンダーまたは魔法の方法はそのXNUMXつです。 マジック メソッドは、XNUMX つのアンダースコアで囲まれた特別なメソッドです。 Python の通常のメソッドとは異なり、明示的に呼び出されることはありません。 そのような魔法の方法のXNUMXつは、 __getitem__ メソッドを使用して、Python オブジェクトをシーケンスまたはコンテナー (リスト、辞書、タプルなど) のように動作できるようにします。 インデックスまたはスライスを取得し、コレクションから関連する値を取得します。 を使用するたびに自動的に呼び出されます indexer [ ] 演算子を使用して、オブジェクト内の要素にアクセスします。

このメソッドは、数行のコードを記述するだけで必要な情報を抽出できる魔法の杖と考えてください。 面白いですよね? この方法は、データ分析や機械学習でも広く使用されています。 それでは、より深く掘り下げてみましょう __getitem__ メソッドとそのパワーと柔軟性を発見してください。

Python プログラマーとしての義務は、機能的なコードを書くだけではないことを理解しておいてください。 コードは効率的で、読みやすく、保守しやすいものでなければなりません。 使用する __getitem__ これらの目標を達成するのに役立ちます。 この魔法の方法を使用するその他の利点は次のとおりです。

  • 完全なデータ構造をメモリにロードする代わりに、重要な情報のみを抽出できるようにすることで、メモリ使用量を削減します
  • データの処理方法と操作方法の柔軟性が向上します
  • データをループせずにコレクションを反復処理できます
  • 組み込み型では不可能な高度なインデックス作成を記述できるようにすることで、機能を強化します
  • 使い慣れた表記法を使用するため、コードが簡素化されます

のシンタックス __getitem__ メソッドは次のとおりです。

def __getitem__(self, index): # Your Implementation pass

 

関数の動作を定義し、そのパラメーターでアクセスしようとしているインデックスを受け取ります。 このメソッドは次のように使用できます。

my_obj[index] 

 

これは、ステートメントに変換されます my_obj.__getitem__(index) フードの下。 今、あなたはそれが組み込みとどう違うのかと思うかもしれません indexer [] オペレーター? この表記法をどこで使用しても、python は自動的に __getitem__ メソッドであり、要素にアクセスするための省略形です。 ただし、カスタム オブジェクトのインデックス作成の動作を変更する場合は、明示的に __getitem__ 方法。

例#01

まずは簡単な例から始めましょう。 すべての学生のリストを持つ Student クラスを作成し、インデックスによってそれらにアクセスし、インデックスが一意の学生 ID を表していると見なします。

class Student: def __init__(self, names): self.names=names def __getitem__(self,index): return self.names[index] section_A= Student(["David", "Elsa", "Qasim"])
print(section_A[2])

 

出力:

 

次に、高度な例に移り、 __getitem__ 方法。 文字列要素のリストがあり、そのインデックス位置を入力するたびに要素を取得したいとします。文字列自体を入力すると、インデックス位置も取得できます。

class MyList: def __init__(self, items): self.items = items def __getitem__(self, index): if isinstance(index, int): return self.items[index] elif isinstance(index, str): return self.items.index(index) else: raise TypeError("Invalid Argument Type") my_list = MyList(['red', 'blue', 'green', 'black']) # Indexing with integer keys
print(my_list[0]) print(my_list[2]) # Indexing with string keys
print(my_list['red']) print(my_list['green']) 

 

出力:

red
green
0 2

このメソッドは、インスタンス属性をすばやく検索するのに非常に役立ちます。 このメソッドの柔軟性と汎用性を考慮すると、これは Python の最も活用されていない魔法のメソッドの XNUMX つと言えます。 この記事を楽しんで読んでいただければ幸いです。また、Python の他の魔法のメソッドについて知りたい場合は、コメント セクションでお知らせください。
 
 
カンワル・メーリーン は、データ サイエンスと医療における AI の応用に強い関心を持つ意欲的なソフトウェア開発者です。 Kanwal は、APAC 地域の Google Generation Scholar 2022 に選ばれました。 Kanwal は、流行のトピックに関する記事を書いて技術知識を共有することを好み、技術業界における女性の割合を改善することに情熱を注いでいます。
 

タイムスタンプ:

より多くの KDナゲット