在Python中,变量赋值是否有“pass”相等的写法?

30 投票
6 回答
13401 浏览
提问于 2025-04-15 14:18

我在用一个叫做 get_count_and_price 的库函数,它会返回一个包含两个值的元组(数量,价格)。在很多地方,我都需要这两个值,但有时候我只需要数量或者价格。所以现在,如果我只需要数量,我就把它赋值给(数量,价格),然后把价格留着不管。

这样做没问题,运行得很好。

但是……

我在用 Eclipse 和 PyDev,新的 1.5 版本会自动显示错误和警告。其中一个警告就是未使用的变量。在上面的例子中,它把价格标记为未使用。这种行为很不错,我真的很感激 PyDev 能帮我做到这一点。不过,我希望能完全跳过对价格的赋值。理想情况下,我想要类似这样的写法:

(count,None) = get_count_and_price()

大家都知道,None 是不能被赋值的。那么在这种情况下,我还有其他选择吗?

我知道我可以这样做:

count = get_count_and_price()[0]

但我只是想看看有没有人有更好的建议。

6 个回答

7

如果你打开Eclipse的设置窗口(Preferences…),你可以指定PyDev在发现未使用的变量时应该忽略哪些变量名(我在看最新的PyDev 1.5.X版本)。

在PyDev的设置中,找到编辑器(Editor)选项,然后点击代码分析(Code Analysis),你会看到最后一个选项,写着“如果变量名以...开头,则不报告未使用的变量”。

在这个地方输入你想要的变量名,PyDev就会忽略那些未使用的警告。

默认情况下,PyDev会对以“dummy”、“_”或“unused”开头的变量名隐藏未使用的警告。

正如@TokenMacGuy提到的,我建议不要仅仅使用“_”这个名字,因为在Python的某些情况下它有特别的含义(特别是在交互式解释器中)。

21

使用 _ 这个符号来表示不需要的变量,虽然大多数情况下是可以的,但可能会有一些问题。根据我们工作中使用的Python风格指南,我通常会写成 count, unused_price = ...,因为我们配置了pylint,让它忽略以 unused_ 开头的变量名的赋值(而且在使用这些变量名时会发出警告!)。不过,我不知道怎么让 PyDev 也这样设置!

33

我觉得使用[0]这个下标没有什么问题,但有时候人们会用一个叫做“丢弃”变量的_。其实它和其他变量一样(在控制台中有特别的用法),只是一些Python用户决定把它当作“丢弃”变量来用,这成了一种约定。

count, _  = get_count_and_price()

关于PyDev的问题,你还是应该使用[0]这个下标。不过如果你真的想用_,唯一的解决办法就是关闭未使用变量的警告,如果这个警告让你觉得烦的话。

撰写回答