著者による画像
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 は、流行のトピックに関する記事を書いて技術知識を共有することを好み、技術業界における女性の割合を改善することに情熱を注いでいます。
- SEO を活用したコンテンツと PR 配信。 今日増幅されます。
- Platoblockchain。 Web3メタバースインテリジェンス。 知識の増幅。 こちらからアクセスしてください。
- 情報源: https://www.kdnuggets.com/2023/03/introduction-getitem-magic-method-python.html?utm_source=rss&utm_medium=rss&utm_campaign=introduction-to-__getitem__-a-magic-method-in-python
- :は
- 2022
- 8
- a
- 私たちについて
- アクセス
- アクセス
- 達成する
- 高度な
- AI
- 医学におけるAI
- すべて
- 許可
- 分析
- &
- APAC
- です
- 引数
- 記事
- 物品
- AS
- 意欲的な
- 関連する
- 属性
- 自動的に
- BE
- 利点
- ブラック
- 青
- 内蔵
- by
- コール
- 呼ばれます
- コール
- 缶
- 変化する
- class
- コード
- コレクション
- コメント
- コンプリート
- コンセプト
- 検討
- 考えると
- コンテナ
- 作ります
- カスタム
- データ
- データ分析
- データサイエンス
- デイビッド
- より深い
- 定義する
- Developer
- 異なります
- 発見する
- e
- 簡単に
- 効率的な
- 素子
- 要素は
- 有効にする
- 入力します
- 本質的な
- さらに
- 例
- エキス
- 非常に
- おなじみの
- 少数の
- 名
- 柔軟性
- 次
- から
- function
- 機能的な
- 機能性
- 世代
- 取得する
- 目標
- でログイン
- 助成
- 大きい
- グリーン
- 取り扱い
- 持ってる
- 助けます
- こちら
- フード
- 希望
- 認定条件
- HTTPS
- i
- ID
- 実装
- 改善
- in
- index
- 産業を変えます
- 情報
- を取得する必要がある者
- 関心
- 興味がある
- 興味深い
- 概要
- IT
- リーディングシート
- ITS
- 自体
- KDナゲット
- キーン
- キー
- 知っている
- 知識
- 言語
- 学習
- ような
- ライン
- リスト
- リスト
- ローディング
- 検索
- 機械
- 機械学習
- マジック
- メンテナンス可能
- 操作
- 多くの
- 薬
- メモリ
- 方法
- メソッド
- かもしれない
- 他には?
- 最も
- 名
- 必要
- オブジェクト
- オブジェクト
- of
- on
- ONE
- オペレータ
- 一般
- その他
- パラメーター
- 情熱的な
- プラトン
- プラトンデータインテリジェンス
- プラトデータ
- 位置
- 可能
- 電力
- プログラマー
- Python
- クイック
- 上げる
- リーディング
- レッド
- 地域
- 表現
- 表し
- の提出が必要です
- return
- s
- 科学
- セクション
- 選択
- 自己
- シェアする
- 速記
- すべき
- スライス
- So
- ソフトウェア
- 一部
- 特別
- start
- ステートメント
- 構造
- 学生
- 生徒
- そのような
- 囲まれた
- 構文
- 取り
- テク
- ハイテク産業
- 技術的
- それ
- アプリ環境に合わせて
- それら
- ボーマン
- 考える
- 〜へ
- トピック
- トレンド
- 下
- わかる
- ユニーク
- us
- 使用法
- つかいます
- users
- 値
- ワンド
- 広く
- 意志
- 以内
- 無し
- レディース
- 技術の女性
- でしょう
- 書きます
- 書き込み
- あなたの
- ゼファーネット