メソッドオブジェクト属性の存在を決定するメソッド
この問い合わせは、オブジェクト内の特定の属性の存在を検証する方法を求めています。未定義のプロパティにアクセスしようとする試みがエラーを提起する次の例を考えてみましょう:
>>> a = SomeClass() >>> a.property Traceback (most recent call last): File "", line 1, in AttributeError: SomeClass instance has no attribute 'property'
ソリューション:hasattr()function
をレバレッジして、この問題を解決するために、hasattr()関数を使用することができます。オブジェクトが望ましい属性を持っているかどうかを確認します。このアプローチでは、以下に示すように、チェックしたいオブジェクトと属性を指定することが含まれます。 a.property
if hasattr(a, 'property'): a.property代替考慮事項
は、Zweiterlindeによって提案された「許しを求める」アプローチを強調する価値があります。これには、次の例に見られるように、属性にアクセスし、潜在的な例外を処理しようとすることが必要です。 A.Property 属性エラーを除く: #「プロパティ」属性の不在
パフォーマンス最適化
if hasattr(a, 'property'): a.property
Hasattr()関数と「赦しのための」アプローチの間の適切な選択は、属性の可用性の可能性。ほとんどの場合、プロパティが存在すると予想される場合、直接呼び出す方が効率的です。ただし、プロパティが頻繁に存在しない可能性が高い場合、Hasattr()が過度の例外処理を防ぐために望ましい場合があります。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3