レガシー コードベースのモデル クラスをラップしたいと考えています。モデル クラスには、そのディクショナリと属性にアクセスするメタ情報とプロパティを含むディクショナリがあります。an_object[some_key]
メタ情報、プロパティ、属性へのアクセスをusing 構文で統一したい__getitem__
。問題は、一部のプロパティにはゲッターがあり、セッターがないことです。そのため、(hasattr を介して) 属性が存在するかどうかを確認しようとすると True が返されますが、プロパティが定義されていないため、その属性の設定は失敗します。
属性を安全に設定できるかどうか、またはそれがメタ辞書で設定する必要があるプロパティかどうかを判断するにはどうすればよいですか?