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

vaj7vani  于 11个月前  发布在  Python
关注(0)|答案(6)|浏览(114)

我正在使用一个名为get_count_and_price的库函数,它返回一个二元组(count,price)。在很多地方我同时使用时间和价格。然而,在一些地方我只需要时间或价格。所以现在,如果我只需要count,我会赋值给(count,price),而不使用价格。
这工作很好,本身不会引起任何麻烦。
然而...
我使用Eclipse和PyDev,新版本1.5会自动显示错误和警告。它显示的警告之一是未使用的变量。在上面的例子中,它将price标记为未使用。这是一种很棒的行为,我真的很感激PyDev为我做了这件事。然而,我想完全跳过对price的赋值。理想情况下,我会喜欢这样的东西:

(count,None) = get_count_and_price()

字符串
现在我们都知道,没有人不能被分配给。在这种情况下,我还能做些什么吗?
我知道我可以做一些

count = get_count_and_price()[0]


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

yxyvkwin

yxyvkwin1#

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

count, _  = get_count_and_price()

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

lsmepo6l

lsmepo6l2#

使用_可能会有一些问题(尽管它基本上是可以的)。根据我们在工作中使用的Python风格指南,我通常会使用count, unused_price = ...,因为pylint被配置为忽略对以unused_开头的裸名的赋值(并在使用任何这样的裸名时发出警告!-)。但我不知道如何指示PyDev这样做!

0md85ypi

0md85ypi3#

如果您转到Eclipse -> Preferences.窗口,您实际上可以指定PyDev应该忽略哪些未使用的变量名(我正在查看最新的PyDev 1.5.X)。
如果你去PyDev -> Editor -> Code Analysis,看看最后一个字段,上面写着“Don 't report unused variable if name starts with”
在其中输入您想要的任何名称,然后使用该名称限制PyDev将忽略未使用的警告的变量名称。
默认情况下,PyDev会隐藏名称以“dummy”、“"或“unused”开头的任何变量的未使用变量警告。
正如@TokenMacGuy在下面所说的,我建议不要只使用“
”,因为它在Python的某些场景中有特殊的含义(特别是在交互式解释器中使用)。

tjjdgumg

tjjdgumg4#

我们经常这样做。

count, _ = get_count_and_price()

字符串
或本

count, junk = get_count_and_price()

c9x0cxw0

c9x0cxw05#

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

  • 它解决了与gettext和交互式提示符的冲突,两者都使用_
  • 如果您以后需要它,很容易将其更改回price
  • 正如其他人指出的那样,在许多语言中,前导下划线已经具有“内部”或“未使用”的含义。

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

(count, _price) = get_count_and_price()

字符串

sshcrbum

sshcrbum6#

我会去找一个亡灵巫师徽章。:)
你说你正在使用PyDev。在PyDev中(至少是最近的版本-我没有检查有多早),任何以“unused”开头的变量名都不会受到Unused Variable警告的影响。其他静态分析工具可能仍然会抱怨(pyflakes会-但它似乎在元组解包上下文中忽略了这个警告)。

相关问题