Pyhton忽略返回变量方法

起因

之前用惯了Matlab觉得~忽略返回值的设计不错,想看看Python有没有类似的方法。

思路

想要忽略返回值,容易想到指定返回下标切片

>>> def fcn():
	return 1,2,3

>>> a=fcn()[0]
>>> a
1

有网友指出可以用_来忽略不需要的返回值

>>> _,a,_=fcn()
>>> a
2

若返回值较多,考虑使用*_生成list

>>> *_,a=fcn()
>>> a
3

深究

被_忽略的返回值哪去了??
我决定查一下locals()

>>> a,*_=fcn()
>>> locals()
{'fcn': <function fcn at 0x00000210F25BC1E0>,'a': 1, '_': [2, 3]}
>>> _
[2, 3]

至此真相大白……
Python变量是允许以_开头的,那些被忽略的值实际被赋给了一个叫做_的变量,进而被“忽略”掉了。

上一篇:PHP-PDO参数绑定问题


下一篇:2.0 Ansible Ad-Hoc命令