The walrus operator is only making a 3-tuple because you are putting into a tuple in the first place. Do a print statement without the extra parens. Then try type-checking the print and it will throw an error...unless you put the parens around it so it sees a tuple. The walrus operator basically starts a new operation the way I've understood it; b := 16 evaluates and prints on its own, so everything is forced into evaluating like that.