更好的Python列表命名除“列表”之外

时间:2011-10-16 14:57:56

标签: python naming-conventions

最好不要将列表变量命名为“list”吗?因为它与python reserved关键字冲突。那么,什么是更好的命名? “input_list”听起来有点尴尬。

我知道它可能是特定于问题的,但是,假设我有一个快速排序函数,那么quick_sort(unsorted_list)仍然有点冗长,因为传递给排序函数的列表显然没有按上下文排序。

有什么想法吗?

7 个答案:

答案 0 :(得分:18)

我喜欢用它中的复数形式命名。所以,例如,如果我有一个名单列表,我称之为names,然后我可以写:

for name in names:

我认为看起来很不错。但通常为了您自己的理智,您应该为变量命名,以便您可以从名称中知道它们是什么。这种约定具有类型无关的额外好处,就像Python本身一样,因为names可以是任何可迭代对象,例如元组,字典或您自己的自定义(可迭代)对象。您可以在其中任何一个上使用for name in names,如果您有一个名为names_list的元组,那就太奇怪了。

(从下面的评论中添加:)在某些情况下,您不必执行此操作。使用像i这样的规范变量来索引短循环是可以的,因为i通常以这种方式使用。如果你的变量用于多个页面的代码,那么你不能一次看到它的整个生命周期,你应该给它一个合理的名称。

答案 1 :(得分:6)

goats

变量名称应该引用它们不仅仅是它们的类型。

答案 2 :(得分:5)

Python代表可读性。所以基本上你应该命名可以提高可读性的变量。请参阅PEP20
您应该只有一致性的一般规则,并且在以下情况下应该打破这种一致性:

  1. 应用规则会降低代码的可读性,即使是     习惯于阅读符合规则的代码的人。

  2. 与周围的代码保持一致,也可以打破它     历史原因) - 虽然这也是一个清理的机会     别人的烂摊子(真正的XP风格)

  3. 此外,使用函数命名规则:小写,必要时用下划线分隔,以提高可读性。
    所有这些都取自PEP 8

答案 3 :(得分:2)

L怎么样?

答案 4 :(得分:1)

为什么不使用unsorted?我更喜欢有名字,它们传达想法,而不是数据类型。有一些特殊情况,变量的类型很重要。但在大多数情况下,从上下文中可以明显看出 - 就像你的情况一样。快速排序显然正在列表中。

答案 5 :(得分:1)

我使用基于描述性名称和类型的命名约定。 (我想我是从杰夫阿特伍德博客文章中了解到的,但我找不到它。)

goats_list
for goat in goats_list : 
    goat.bleat()

cow_hash = {}

更复杂的事情(list_list_hash_list)我上课了。

答案 6 :(得分:0)

只需使用lstseq(针对序列)