Python 3.11.0a2+ と次のコード:
def my_fun(e):
match e:
case (1,):
print("tuple (1,)")
case [1]:
print("list [1]")
case _:
print("I don't understand")
関数を呼び出すと、my_fun([1])
「tuple (1,)」が出力されます。
この動作は正しいですか?
tuple((1, ))
の代わりに明示的に照合すると(1,)
、期待どおりに機能します。
これがインタプリタのバグでない場合、この一見奇妙な動作の背後にある理由は何ですか?