ホームページ >バックエンド開発 >Python チュートリアル >Pythonでgetattr関数を使用する方法 getattrはファクトリモードを実装します
関数自体のドキュメントを見てください
オブジェクトから名前付き属性を取得します。getattr(x, 'y') は x.y と同等です。
デフォルトの引数が指定された場合、それがなければ属性が存在しません。その場合、例外が発生します。
オブジェクト.名
getattr(object,name) を試してみましたが、object.name と同じ関数があります。しかし、この本の例では、この関数の機能を非常によく示しています。 getattr を使用すると、ファクトリ モードを簡単に実装できます。
例: モジュールは、HTML、テキスト、XML、およびその他の形式での印刷をサポートしています。渡されたさまざまな形式パラメータに従って、さまざまな関数が呼び出され、いくつかの形式で出力されます。
本当に便利です
getattr 関数の理解を深めるために、英語の説明を再掲します
Python の getattr 関数は、属性を識別するための識別子の代わりに文字列オブジェクトを使用して、オブジェクトから属性を取得するために使用されます。
[code]
value = obj.attributevalue = getattr(obj, "attribute")
属性が存在する場合は、対応する値が返されます。属性が存在しない場合は、次の値が返されます。代わりに AttributeError 例外が発生します。
getattr 関数は、(__getattr__ メソッドを実装することにより) ドット表記をサポートする任意のオブジェクトで使用できます。これには、クラス オブジェクト、モジュール、さらには関数オブジェクトも含まれます。
path = getattr(sys, "path")
doc = getattr(len, "__doc__")getattr 関数は通常の属性アクセスと同じ検索ルールを使用し、通常の属性アクセスと両方で使用できます。属性とメソッド:
結果 = obj.method(args)
func = getattr(obj, "method")
result = func(args)または、1 行で:
result = getattr(obj, "method")(args)
try:
例外 AttributeError:
... メソッドが見つからない場合に対処します ...
else:
result = func(args )
関数はオプションのデフォルト値を取り、属性が存在しない場合に使用されます。次の例では、メソッドが存在する場合にのみ呼び出します。
func = getattr(obj, "method", None)
func(args)
これはバリエーションで、属性を呼び出す前にその属性が実際に呼び出し可能なオブジェクトであることを確認します。
func = getattr(obj, "method", None)
func(args)