使用 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,)
,它将按预期工作。
如果这不是解释器的错误,那么这种看似奇怪的行为背后的原因是什么?