読者です 読者をやめる 読者になる 読者になる

属性が存在しない場合、デフォルト値を設定する

例:クラスKyouenPuzzleのリスト:puzzlesに動的に属性を付与します。

for p in puzzles:
    if 特定の条件:
        p.clear = '1'

この状態で、p.clearにアクセスすると、例外が発生しました。
そのため、利用する際に下記のようにしました。

for p in puzzles:
    clear = p.clear if hasattr(p, 'clear') else '0'

これによって、pがclearという属性を持っていなければ、'0'を、
持っていれば、その属性を返します。


まぁ、クラスにデフォルト値入れておけばいいんですが・・・