我正在使用一个名为get_count_and_price的库函数,它返回一个2元组(计数,价格)。在很多地方,我同时使用时间和价格。但是,在某些我只需要时间或价格。所以现在,如果我只需要计数,我会分配给(计数,价格)并保留未使用的价格。
这很有效,并且本身不会造成任何麻烦。
...然而
我将Eclipse与PyDev一起使用,新版本1.5自动显示错误和警告。它显示的警告之一是未使用的变量。在上面的示例中,它将价格标记为未使用。这种行为很棒,我非常感谢PyDev为我做这件事。但是,我想完全跳过作业价格。理想情况下,我想要像:
(count,None) = get_count_and_price()
现在我们都知道,无法分配。在这种情况下我还能做些什么吗?
我知道我可以做类似
的事情count = get_count_and_price()[0]
但我要问的是,是否有人有更好的建议。
答案 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确实 - 但它似乎在元组解包的上下文中忽略了这个警告)。