クラスが__getattr__
メソッドを定義する場合、要求された属性が見つからない場合は、AttributeError
を発生させる必要があります。__getattr__でのAttributeErrorのフォーマット
ただし、単にraise AttributeError()
を実行すると、通常のエラーメッセージが表示されません。
現在、私が代わりに次のことをやっている:
raise AttributeError("'{}' object has no attribute '{}'".format(self.__class__.__name__, name))
しかし、これはボイラープレートコードの多くで、Pythonインタプリタは、たとえばた場合は一貫性のないエラーメッセージの可能性を秘めていますローカライズされた
__getattr__
メソッドが定義されていないときと同じ方法で、エラーメッセージを組み立てるための方法はありますか?
'object'には' __getattr__'がありません。 – user2357112
@ user2357112 - いつものように、あなたは完全に正しいです。私は別の解決策で更新しました。 – mgilson
属性値を '返す 'ことを忘れないでください。 – user2357112