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

Kry*_*ski 29 python core

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

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

然而...

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

(count,None) = get_count_and_price()
Run Code Online (Sandbox Code Playgroud)

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

我知道我可以做点什么

count = get_count_and_price()[0]
Run Code Online (Sandbox Code Playgroud)

但我要问的是,是否有人有任何更好的建议.

Unk*_*own 33

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

count, _  = get_count_and_price()
Run Code Online (Sandbox Code Playgroud)

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

  • 对此要谨慎.请记住,在交互式python解释器中,`_`具有特殊含义,并且赋值给它带来了魔力. (7认同)
  • Haskell和Erlang也使用_作为"一次性"变量. (6认同)
  • 只要你没有gettext作为`_()` (6认同)
  • 由于上面提到的问题\ _,我通常使用双下划线(\ _\_ _):count,\ _\_ _ = get_count_and_price() (3认同)
  • 还发现了这个方便的注释/注释,这将使PyDev忽略对具有未使用变量的行的警告:#@ UnusedVariable (2认同)

Ale*_*lli 21

使用多个_提议可能会有一些问题(尽管它基本上没问题).根据我通常使用的Python样式指南,count, unused_price = ...因为pylint被配置为忽略以unused_(以及任何此类裸名称的使用而发出警告!)的裸名称的赋值.但我不知道如何PyDev表明这样做!

  • 我刚刚升级到PyDev 2.2.2,它似乎现在默认识别`unused_`约定,并没有给出任何警告 (3认同)

Bre*_*ode 7

如果你进入Eclipse - > Preferences ...窗口,你可以实际指定PyDev应该忽略哪些变量名称(如果它们未被使用)(我正在查看最新的PyDev 1.5.X).

如果你去PyDev - >编辑器 - >代码分析,看看最后一个字段"如果名字以"开头就不报告未使用的变量"

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

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

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