On Wed, Jul 08, 2020 at 07:53:00AM -0000, Kerwin Sun wrote: > I tried with this code: > ``` > from dataclasses import dataclass > > @dataclass > class Point: > x: int > y: int > > z = 41 > > def whereis(point): > w = 23 > match point: > case Point(0, 0): > print("Origin") > case Point(0, y): > print(f"Y={y}") > case Point(x, 0): > print(f"X={x}") > case Point(): > print("Somewhere else") > case 23: > print("Not the answer") > case w: > print("Not the answer, local w") > case z: > print("The answer") > case _: > print("other") > whereis(42) > ``` > > It retuend: > ``` > Not the answer, local w
That looks like the correct answer, "w" is a new binding. This is the same in Standard ML and OCaml: # let whereis point = let w = 23 in match point with 23 -> "Not the answer" | w -> "Correct answer" | _ -> "Unreachable";; Warning 26: unused variable w. Warning 11: this match case is unused. val whereis : int -> string = <fun> # whereis 42;; - : string = "Correct answer" # Stefan Krah _______________________________________________ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-le...@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/TH5NYQ2KF36MS7IKILOSMYDW3QZXFIZC/ Code of Conduct: http://python.org/psf/codeofconduct/