赋值为None
我有一个函数,它会返回三个数字,比如:
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中是一个普通的变量名,不过通常用来表示那些不太重要的变量。