赋值为None

17 投票
3 回答
5488 浏览
提问于 2025-04-15 20:53

我有一个函数,它会返回三个数字,比如:

def numbers():
   return 1,2,3

通常我会调用这个函数来获取这三个返回的数字,比如:

a, b, c = numbers()

不过,有一种情况我只需要第一个返回的数字。我试着用:

a, None, None = numbers()

但我收到了“SyntaxError: assignment to None”的错误信息。

我当然知道,我可以使用我之前提到的第一种方法,然后简单地不使用“b”和“c”这两个变量。不过,这样感觉好像浪费了两个变量,而且感觉编程上不太对劲。

3 个回答

0

我这样做:

a = numbers()[0]

因为返回的结果是一个元组,你可以通过索引来访问它。

这个方法可以避免你声明一些没用的变量,比如“_”。虽然大多数人对没用的变量不在意,但我的pylint(一个代码检查工具)设置成会提醒我这些,因为它们可能意味着代码中有未使用的部分等等。

9

另一种方法当然是用 a=numbers()[0],如果你不想再声明一个新变量的话。不过我个人一般还是会用 _ 来表示。

27
a, _, _ = numbers()

这是用Python的一个很好的方法。在Python 3中,你也可以使用:

a, *_ = numbers()

为了说明一下,_在Python中是一个普通的变量名,不过通常用来表示那些不太重要的变量。

撰写回答