ax.plot()
返回一个tuple with one元素。通过将逗号添加到赋值目标列表中,您可以要求 Python 解压返回值并将其依次分配给左侧命名的每个变量。
最常见的是,您会看到这一点应用于具有多个返回值的函数:
base, ext = os.path.splitext(filename)
然而,左侧可以包含任意数量的元素,并且只要它是变量的元组或列表,就会进行解包。
在 Python 中,逗号使某些内容成为元组:
>>> 1
1
>>> 1,
(1,)
在大多数位置,括号是可选的。你可以重写原来的代码with括号不改变含义:
(line,) = ax.plot(x, np.sin(x))
或者你也可以使用列表语法:
[line] = ax.plot(x, np.sin(x))
或者,您可以将其重新转换为执行以下操作的行not使用元组拆包:
line = ax.plot(x, np.sin(x))[0]
or
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
有关拆包方面作业如何工作的完整详细信息,请参阅赋值语句 https://docs.python.org/3/reference/simple_stmts.html#assignment-statements文档。