The walrus operator
:= is a new feature in Python 3.8. It is similar to
the assignment operator
=, but it is an expression, not a statement.
This means you can use
:= in places where only an expression can go. For
example, the following code is valid:
while (line := file.readline()) != "done": print(line)
In the code above,
line will hold the value from
file.readline() in each
iteration of the loop.
If the code had used
= instead, it would have resulted in a syntax error,
a = b is a statement, not an expression, so it is not comparable.