この記事では、Pythonのセイウチ演算子(Walrus operator:ウォルラス演算子)の使い方を解説します。
セイウチ演算子とは、Python 3.8 で追加された 変数の代入と使用を同時に行える演算子のこと です。つまりは「代入式」のことです。
それでは、セイウチ演算子の使い方を見ていきましょう!
セイウチ演算子の使い方
セイウチ演算子は以下のように記述します。
:=
なぜセイウチ演算子と呼ばれるかと言うと、見た目がセイウチに似てるかららしい。なんとな〜くセイウチの顔に見えなくも無い...ような。
「名前付き式(Named Expressions)」と呼ばれることもあります。
使ってみる
例えば、以下のようなコードをセイウチ演算子を使って書き直すと、
val = 1
if val >= 0:
print(val)
少しだけすっきりと記述することができます。
if (val := 1) >= 0:
print(val)
セイウチ演算子の注意点
セイウチ演算子にはいくつか注意点があります。
優先順位
先ほどのコードでは、val := 1
を ()
で囲っていました。これを外すとどうなるか見てみましょう!
if val := 1 >= 0:
print(val)
# True
val に True
が代入されました。ということは、1 >= 0
の結果が val に代入されているのが分かります。()
を付け忘れないように気を付けましょう!
ブロックスコープではない
先ほどのコードの val は、if
文ブロック外からでも呼び出せます。
if (val := 1) >= 0:
print(val)
print(val)
見た目上は if
文ブロック内でしか呼び出せなさそうですが、スコープを狭く作れる訳では無いので注意してください。
=と同じようには使えない
代入文の代わりに使うことはできません。
val := 1
# SyntaxError: invalid syntax
()
で囲むことで使えなくはないですが、
(val := 1)
デメリットしかないので使わないようにしましょう!
まとめ
この記事では、Python のセイウチ演算子(代入式)について解説しました。
セイウチ演算子を使うことで少しだけコードをすっきりさせることができます。
それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ