0

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,)、期待どおりに機能します。

これがインタプリタのバグでない場合、この一見奇妙な動作の背後にある理由は何ですか?

4

1 に答える 1