在python中,是否存在变量赋值的“pass”等价物

时间:2009-09-13 23:08:26

标签: python core

我正在使用一个名为get_count_and_price的库函数,它返回一个2元组(计数,价格)。在很多地方,我同时使用时间和价格。但是,在某些我只需要时间或价格。所以现在,如果我只需要计数,我会分配给(计数,价格)并保留未使用的价格。

这很有效,并且本身不会造成任何麻烦。

...然而

我将Eclipse与PyDev一起使用,新版本1.5自动显示错误和警告。它显示的警告之一是未使用的变量。在上面的示例中,它将价格标记为未使用。这种行为很棒,我非常感谢PyDev为我做这件事。但是,我想完全跳过作业价格。理想情况下,我想要像:

(count,None) = get_count_and_price()

现在我们都知道,无法分配。在这种情况下我还能做些什么吗?

我知道我可以做类似

的事情
count = get_count_and_price()[0]

但我要问的是,是否有人有更好的建议。

6 个答案:

答案 0 :(得分:33)

我认为使用[0]下标没有任何问题,但有时人们会使用“一次性”变量_。它实际上就像任何其他变量一样(在控制台中有特殊用途),除了一些Python用户决定将它作为惯例“一次性”。

count, _  = get_count_and_price()

关于PyDev问题,你应该只使用[0]下标。但是,如果您真的想使用_,唯一的解决方案是禁用未使用的变量警告,如果这让您感到困扰。

答案 1 :(得分:21)

使用_可能会有一些问题(虽然它基本上没问题)。根据我们在工作中使用的Python样式指南,我通常使用count, unused_price = ...,因为pylint被配置为忽略以unused_开头的对于姓名的分配(并且警告使用任何此类裸名称! - )。但我不知道如何指示PyDev这样做!

答案 2 :(得分:7)

如果你去Eclipse - >首选项...窗口,您可以实际指定PyDev在未使用时应忽略哪些变量名称(我正在查看最新的PyDev 1.5.X)。

如果你去PyDev - >编辑 - >代码分析并查看最后一个字段“如果名称以”

开头,则不要报告未使用的变量

在那里输入您想要的任何名称,然后使用该名称来限制PyDev将忽略未使用的警告的变量名称。

默认情况下,看起来PyDev会为名称以“dummy”,“_”或“unused”开头的任何变量隐藏未使用的变量警告。

正如@TokenMacGuy所述,我建议不要只使用“_”,因为它在Python的某些场景中具有特殊含义(特别是在交互式解释器中使用)。

答案 3 :(得分:3)

我们经常这样做。

count, _ = get_count_and_price()

或者

count, junk = get_count_and_price()

答案 4 :(得分:2)

我宁愿将其命名为_price,原因如下:

  • 它解决了与gettext和交互式提示的冲突,它们都使用_

  • 如果您稍后需要,可以轻松更改回price

  • 正如其他人所指出的那样,领先的下划线在许多语言中已经具有“内部”或“未使用”的含义。

所以你的代码最终看起来像这样:

(count, _price) = get_count_and_price()

答案 5 :(得分:1)

我会追上死灵法师徽章。 :)

你说你在使用PyDev。在PyDev中(至少是最近的版本 - 我没有检查多久),任何以“unused”开头的变量名都将免于Unused Variable警告。其他静态分析工具可能仍然抱怨,(pyflakes确实 - 但它似乎在元组解包的上下文中忽略了这个警告)。