存在しない可能性がオブジェクトの属性のコンディショニング: Pythonの:私はこのように見えた条件コードのビットを持っていた
if self.above and self.above.author and self.above.author.username!=self.author.username:
"notify above.author that someone has replied to their comment"
しかし
何self.above
かが存在しない場合は、コメントのいずれかには、著者を持っていない場合
AttributeError: 'NoneType' object has no attribute 'author'
または
AttributeError: 'NoneType' object has no attribute 'username'
ので、私は前に最初に確認することができます。そして、私のようなエラーが出ますそれらの属性
if self.above:
if self.above.author:
if self.author:
if self.author.username!=self.above.author.username:
"notify about response"
else:
"notify about response"
のためではなく、すべての余分なIFSと「通知応答に関する」コードの重複を見て、行数は倍以上です。この問題が発生すると、多くの時間がかかるので、上記のソリューションを使用すると、いくつかの単純な条件をチェックするために50行の余分なコードが必要になります。
これを処理するより良い方法はありますか?
私が見逃しているより大きい知恵がない限り、これはちょうど[NIH](http://en.wikipedia.org/wiki/Not_invented_here)のような例外処理を行うilisticのように見えるので、私はdownvoteする傾向があります。 – Kimvais
この部分 'self.above.author.username!= self.author.username'はユーザ名の値が同じでないことをチェックしています。あなたの' resolve'関数はこれらの値を返しません。 – vikki
非常に良い。これは私が元々望んでいた振る舞いを正確に得ることを可能にします。よく書かれました。ありがとう。 – Hank