変数に値が設定されていればその値を、Noneであれば別の値を設定するような処理では、or
を使うとif文を使わずに書くことができます。
if __name__ == "__main__":
str1 = None
str2 = 'str2'
print((str1 or '') +' --- ' + (str2 or ''))
# 出力 -> --- str2
str1 = 'str1'
print((str1 or '') +' --- ' + (str2 or ''))
# 出力 -> str1 --- str2
or
使っているので、結局は条件分岐として処理されているので、あまり変わらないかも?
ソースコードがスッキリするという利点はありそうです。
この方法を調べた理由は、SonarQubeでソースコードの評価をされたときに、「if文多すぎぃ!」と怒られたからです。
if分岐を減らすの難しい。。
精進します。
コメント