Python表达式中的神秘逗号

2024-03-28 17:11:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道逗号在代码中的作用:

line, =

以下示例显示了该行为:

^{pr2}$

结果:

^{3}$

当我试图使用line变量时,它真的变得很混乱,我不知道是否要使用尾随逗号:

def init():
    line.set_data([], [])
    return line,

或者有没有更好的方法来避免逗号?在


Tags: 方法代码示例datareturninitdefline
3条回答

它只是打开一个1元组。例如:

line, = ('foo',)   # same as line = 'foo' in this example

与…比较

^{pr2}$

等等

它有助于解包元组

在这里可以看到不同的结果:

a = (1,)
print(a) # prints (1,)

a,  = (1,)
print(a) # prints 1

在Python中,一次分配多个变量的方法很简单:

(a, b, c) = something

指定给变量元组,而不是单个变量。如果something不是一个正好有3个元素的集合,那么这个例子将引发一个异常;否则它将把a绑定到something中的第一个项,b绑定到第二个,而{}绑定到第三个元素。在

如您所知,在Python元组中,圆括号通常是可选的;重要的是逗号。所以你也可以把我的例子写成:

^{pr2}$

这当然适用于任何大小的变量元组,而不仅仅是三个。而1元组是由一个带有尾随逗号的项目来表示的,后面没有任何东西1。所以你的例子是:

^{3}$

只是断言ax.plot([], [], lw=2)返回一个包含单个元素的集合,并将line绑定到该元素。它与几乎相同的陈述不同:

line = ax.plot([], [], lw=2)

因为这将把line绑定到集合本身,并且不包含关于它拥有的元素数量的断言。在


1这有点难看,但有必要这样做,因为唯一明显的语法是(item),这与简单地用括号括住子表达式的语法冲突。E、 没有人希望2 * (3 + 1)给出一个关于inttuple相乘的错误。在

相关问题 更多 >