ax.plot()返回一个元素的元组.通过将逗号添加到赋值目标列表,您可以要求Python解包返回值并将其分配给依次命名为左侧的每个变量.
大多数情况下,您会看到这适用于具有多个返回值的函数:
base, ext = os.path.splitext(filename)
但是,左侧可以包含任意数量的元素,并且只要是解包将发生的元组或变量列表.
在Python中,它是使逗号成为元组的逗号:
>>> 1
1
>>> 1,
(1,)
在大多数位置,括号是可选的.您可以使用括号重写原始代码而不更改含义:
(line,) = ax.plot(x, np.sin(x))
或者您也可以使用列表语法:
[line] = ax.plot(x, np.sin(x))
或者,您可以将其重新编写为不使用元组解包的行:
line = ax.plot(x, np.sin(x))[0]
要么
lines = ax.plot(x, np.sin(x))
def animate(i):
lines[0].set_ydata(np.sin(x+i/10.0)) # update the data
return lines
#Init only required for blitting to give a clean slate.
def init():
lines[0].set_ydata(np.ma.array(x, mask=True))
return lines
有关分配如何在解包方面工作的完整详细信息,请参阅Assignment Statements文档.