対象の読者
python勉強始めたばかりの方。
私は触り始めて随分経ちますが、しょうもないミスなものの最初気づかずに愕然としたので悔しさを忘れないため記事にします。
The if expression can be replaced with 'test'
このlinterエラーはPylintで出てくるエラーです。
下に載せてるドキュメント見ればわかるような話ではあるんですが、丁寧にいきましょう。
今回自分のコードは下記のように書いてました。変数名は簡略化してます。
return True if variable_A == variable_B else False
初学者向けに書いているので、簡単にこの書き方(三項演算子)について説明します。
三項演算子
if 条件:
variable = (条件がTrueの時の値)
else:
variable = (条件がFalseの時の値)
ということをしたい時に
variable = (条件がTrueのときの値) if (条件) else (条件がFalseのときの値)
というように一行にまとめることができます。
上の自分のコードではメソッドの返り値として書いた例なので変数として格納してるのではなくてreturnしています。
エラーの原因
話を戻しますが、エラーの原因としてはこの書き方が冗長という話で、そもそも
variable_A == variable_B
の時点で返り値がbooleanなので、それに対応してTrue、Falseを返す必要がないんですね。
なので正しい書き方は下のようになります。
return variable_A == variable_B
まとめ
こういうところ詰め甘いのほんと良くない。
参考