分配给无

Joe*_*oel 15 python

我有一个返回3个数字的函数,例如:

def numbers():
   return 1,2,3
Run Code Online (Sandbox Code Playgroud)

通常我会调用此函数来接收所有三个返回的数字,例如:

a, b, c = numbers()
Run Code Online (Sandbox Code Playgroud)

但是,我有一个案例,我只需要第一个返回的号码.我试过用:

a, None, None = numbers()
Run Code Online (Sandbox Code Playgroud)

但我收到"SyntaxError:赋值给无".

当然,我知道我可以使用我提到的第一个选项,然后根本不使用"b"和"c"变量.然而,这似乎是两个变形的"浪费",感觉就像错误的编程.

Sil*_*ost 22

a, _, _ = numbers()
Run Code Online (Sandbox Code Playgroud)

是一种pythonic方式来做到这一点.在Python 3中,您还可以使用:

a, *_ = numbers()
Run Code Online (Sandbox Code Playgroud)

澄清_是Python中的正常变量名称,除了它通常用于指代非重要变量.

  • 除非它引用`gettext`中的某些内容,或者用作REPL中的tally变量. (2认同)

Nik*_*win 9

当然a=numbers()[0],另一种方法是,如果您不想声明另一个变量.尽管如此,我通常使用_我自己.