python中未使用的变量命名

时间:2012-07-14 18:07:34

标签: python variables

  

可能重复:
  How can I get around declaring an unused variable in a for loop?

在Python中,命名一个不会被使用的变量的最佳实践是什么?这是一个奇怪的问题,但对于我的具体情况,我有一个(键,值)元组,我只对值感兴趣。我的用例的基本演示:

some_stuff = [("key", "value"), ("key2", "value")]
for _, value in some_stuff:
    pass  # TODO: do something really important with value

我在Eclipse中注意到,命名变量_或_前缀(例如_k)将不会显示未使用的变量警告,并且删除_前缀会导致警告被引发,但这可能只是一个奇怪的/ Eclipse中的“功能”而非Python最佳实践..

4 个答案:

答案 0 :(得分:23)

不确定这是否是Eclipse的东西,但我通常使用'_'来表示我不关心的值(即,返回元组中的值或for中的索引值 - 循环)。

当然,您可以随时使用旧的待机状态,例如命名变量dummyignore

我不确定PEP 8是否提及此事,可能值得窥视。

答案 1 :(得分:12)

这是一个Python编码约定,是的。最佳做法是使用_,而不关心所设置的值,例如unpacking values from a tuple时。然而,有时需要这个标志,你可能会以非Pythonic方式做其他事情。

作为前缀的

_用于表示“私人”方法和变量,如Phil Cooper所说。用此表示这些方法不属于任何其他模块可以或应该依赖的公共合同。

一些参考文献:

答案 2 :(得分:3)

让我们从...开始......

>>> import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
...
Readability counts.
Special cases aren't special enough to break the rules.

我建议选择不值得怀疑的方法。它通常意味着可以自我解释,简单易懂的东西。如果您坚持表达未使用,那么名称unuseddummy呢?

如果可能,_更多隐身,隐藏甚至是被忽视的候选人?

对于Perl用户,_表示除 unused 之外的其他内容。即使你可能不关心Perl用户,如果你以前从未见过它,_对你意味着什么呢?

答案 3 :(得分:0)

你几乎得到了_1

  • 一个前导下划线表示,是的,这是存在的,您可以查看它,但另一种方法或属性是您应该使用的;咨询文档。
  • 两个领先的下划线意味着,危险!不要触摸,否则你会严重破坏事物的状态和稳定性。请远离;如果你搞砸了,如果出现问题,那都是你自己的错。

注意:使用__不仅仅是命名约定,因为它会导致name mangling。这会将变量重命名为_ClassName__var。这使得变量/方法更难在类之外使用。这主要是为了避免继承类在父类中意外覆盖方法。