ホームページ > バックエンド開発 > Python チュートリアル > Python の「getattr()」関数とは何ですか?またその使用方法は何ですか?

Python の「getattr()」関数とは何ですか?またその使用方法は何ですか?

Susan Sarandon
リリース: 2024-12-16 21:26:16
オリジナル
684 人が閲覧しました

What is Python's `getattr()` Function and How Can I Use It?

getattr() とは何ですか?とその使用方法

オブジェクトから属性を取得することは、Python プログラミングでは一般的な方法です。ドット表記を使用して属性に直接アクセスするのは便利ですが、属性名が動的に保存されているか、事前に不明である状況が発生する可能性があります。ここで getattr() 関数が登場します。

getattr() について

getattr() は、属性値を取得できる組み込みの Python 関数です。名前が文字列として指定された場合、オブジェクトから取得されます。 3 つの引数を取ります:

  1. object: 属性の取得元のオブジェクト。
  2. attr_name: の名前文字列としての属性。
  3. デフォルト: (オプション) 属性が存在しない場合に返されるデフォルト値。

getattr() の使用法

getattr() は、次の場合に特に役立ちます。

  • 属性名は動的に生成または保存されます。変数。
  • 属性の存在をプログラムで確認する必要があります。
  • サブクラスまたはメタクラスの属性を取得します。

たとえば、属性名を持つ Person オブジェクトを考えてみましょう。および性別:

class Person:
    name = 'John'
    gender = 'Male'
ログイン後にコピー

を使用して name 属性にアクセスするにはgetattr():

name = getattr(person, 'name')
ログイン後にコピー

これは次と同等です:

name = person.name
ログイン後にコピー

ただし、getattr() は属性名がコンパイル時に不明な場合 (保存時など) に役立ちます。変数内:

attr_name = 'gender'
gender = getattr(person, attr_name)
ログイン後にコピー

注: getattr() はデフォルト値が 3 番目の引数として指定されない限り、属性が存在しない場合は AttributeError。

その他のアプリケーション

getattr() には、属性の取得以外にも次のようなアプリケーションがあります。

  • を使用して属性を動的に反復するdir():
for attr in dir(obj):
    value = getattr(obj, attr)
ログイン後にコピー
  • 特定のメソッドまたは属性の検索:
test_methods = [
    getattr(obj, attr)
    for attr in dir(obj)
    if attr.startswith('test')
]
ログイン後にコピー

結論

getattr() は、オブジェクトからプログラムによる属性の取得を可能にする多用途関数です。そのユースケースは、動的に保存された属性へのアクセスからオブジェクトの動的探索まで多岐にわたります。その使用法を理解すると、Python でオブジェクトを操作する際の柔軟性と制御が向上します。

以上がPython の「getattr()」関数とは何ですか?またその使用方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート