Python PR

【Python】セイウチ演算子の使い方【代入式】

記事内に商品プロモーションを含む場合があります

この記事では、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 のセイウチ演算子(代入式)について解説しました。

セイウチ演算子を使うことで少しだけコードをすっきりさせることができます。

それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ