セイウチ構文って何

emile-perron-xrVDYZRGdw4-unsplash.jpg

質問

セイウチ構文って何のためにあるの?


Djangoのツボとコツがゼッタイにわかる本[第3版] [ 大橋亮太 ]

価格:2860円
(2026/4/5 14:14時点)
感想(0件)


解答

セイウチ構文(walrus operator :=)は、「代入しながら式として値を使えるようにする」ための構文です。

Python 3.8で導入されました。


1. 何ができるのか

普通の代入はこうです:

x = len(data)if x > 10:    print(x)

セイウチ構文を使うと:

if (x := len(data)) > 10:    print(x)

代入と条件判定を一度に書けるのがポイントです。


2. 何のためにあるのか

主な目的は次の3つです。

① 無駄な再計算を防ぐ

# 悪い例if len(data) > 10:    print(len(data))
# セイウチ構文if (n := len(data)) > 10:    print(n)

→ 同じ処理を2回書かなくて済む


② コードをコンパクトにする

特にループで便利です。

# 従来line = f.readline()while line:    print(line)    line = f.readline()
# セイウチ構文while (line := f.readline()):    print(line)

③ 条件の中で値を使い回せる

if (match := pattern.search(text)):    print(match.group())

→ 「判定」と「結果の利用」を同時に書ける


3. 注意点

便利ですが、使いすぎると逆に読みにくくなります。

# これは読みにくいif (a := func1()) and (b := func2(a)) and (c := func3(b)):    ...

→ 基本は「シンプルな場面だけ」で使うのが良い


まとめ

  • セイウチ構文 = 代入しながら値を使う

  • 主な目的:

    • 再計算を減らす

    • コードを簡潔にする

    • 条件内で値を再利用する

  • ただし可読性とのバランスが重要



現場至上主義 Spring Boot2徹底活用【電子書籍】[ 廣末丈士 ]

価格:3258円
(2026/4/4 15:35時点)
感想(0件)


Mastering GoLang From Basics to Advanced Features【電子書籍】[ H?seyin K???k ]

価格:2487円
(2026/4/5 14:10時点)
感想(0件)


 



この記事へのコメント