Python:"myvar = 1000," 是做什么的?

Python: What does "myvar = 1000," do?

早些时候我正在编写一些代码,当我在创建变量 myvar 时出现错字,它并没有通过错误或不同的行为。这是行:

myvar, var2 = 1000, 1000,

为什么没有报错?

对于新示例,您实际上仍在处理元组。 如果你打印出右边是什么,你会得到

testVar = 1000, 1000,
print(testVar)

# result:
(1000,1000)

幕后实际发生的事情是 Python 看到一个元组,然后将其解包为两个值并将一个分配给 myvar,另一个分配给 var2。在一天结束时,右侧仍然充当元组。

事实上,我们知道这是真的另一种方式是,如果我们尝试解压缩它但我们没有提供足够的变量:

myvar, = 1000, 1000,

这会引发异常:

ValueError: too many values to unpack (expected 1)

您正在生成一个元组并同时将其解压缩到两个不同的变量中。你可以检查

mytuple = 1000, 1000,

这将生成一个 tuple(1000,1000) 无论最后的逗号是否存在(后面没有值)。
您将生成一个大小为 1 的元组

mytuple = 1000,

现在,您将在下一步中使用

有效地破坏元组
myvar, var2 = 1000, 1000,

最后你有两个int类型的变量。

您已经编辑了 post,所以现在它会问一个不同的问题。

In [1]: myvar = 10, 10

In [2]: myvar
Out[2]: (10, 10)

In [3]: myvar[0]
Out[3]: 10

In [4]: myvar, myvar2 = 10, 10

In [5]: myvar
Out[5]: 10

In [6]: myvar2
Out[6]: 10

In [7]: myvar, myvar2 = [10, 100] # A list

In [8]: myvar
Out[8]: 10

In [9]: myvar2
Out[9]: 100