この記事では Python3.8 以降の機能である__代入式__を使っています。
問題のコード
ある変数の値がNoneでなければ、処理を行いたいケースがよくあるとおもいます。
代入式を用いないで書くと、一度(*1)if文の外で変数を宣言し、(*2)if文の条件に利用し、(*3)if文内の処理に利用する、というコードになります。
if文の中で使いたいのにif文の外で一度変数に格納してから使うというのが、冗長な感じがします。
user = {'name': 'Taro', 'gender': '1'}
name = user.get('name') # ...(*1)
if name: # ...(*2)
print(name) # ...(*3)
代入式 x := y を用いる
そんなときは代入式を用いましょう。
プログラミングではざっくり、文⇒返り値無し、式⇒返り値有りと考えられます。
x := y
の代入式では、代入した値が返ってきます。
user = {'name': 'Taro', 'gender': '1'}
if name := user.get('name'):
print(name)
参考
代入式について詳しく知りたい場合、以下のQiita記事が丁寧で分かりやすいので参考にしてください!
https://qiita.com/ksato9700/items/d37efc6982365e24f6af