Python の Getattr() の理解と活用
getattr 関数を使用したことがあるかもしれませんが、その真の目的を把握するのは難しい場合があります。 li.pop を getattr(li, "pop") としてミラーリングする機能以上に、getattr をより深く理解することが重要です。
Getattr() をいつどのように使用するか
Python オブジェクトは、データや関数のプロパティを含む属性を持っています。これらの属性にアクセスするには、通常、person.name または person.the_method() が必要です。ただし、実行時まで属性の名前が不明な状況が発生します。ここで getattr が威力を発揮します。
属性の名前 (「性別」など) を格納する変数 attr_name を考えてみましょう。 person.gender の代わりに、getattr(person, attr_name) を利用して属性にアクセスできます。
例:
attr_name = 'name' person = Person() getattr(person, attr_name)
属性の不在の処理
Getattr は、指定された属性が存在する場合に AttributeError を発生させます。は不在です。これを軽減するには、属性が見つからない場合に返されるデフォルト値を 3 番目の引数として指定します。
getattr(person, 'age', 0)
Getattr() を使用した属性の反復
getattr と dir を組み合わせて、すべての属性名を反復処理し、それらの属性を取得します
for attr_name in dir(obj): attr_value = getattr(obj, attr_name)
実際の応用: テストで始まるメソッドの検索と呼び出し
for attr_name in dir(obj): if attr_name.startswith('test'): getattr(obj, attr_name)()
結論
Getattrコーディング中に不明な場合でも、名前を使用して属性を取得できるようになります。その多用途性は、属性値の抽出、属性の欠如の処理、特定の命名規則によるメソッドの識別と呼び出しにまで及びます。 getattr の機能を利用して、Python プログラミングでの動的な属性操作を行います。
以上がPython の「getattr()」関数はいつ、どのように使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。