最好不要将列表变量命名为“list”吗?因为它与python reserved关键字冲突。那么,什么是更好的命名? “input_list”听起来有点尴尬。
我知道它可能是特定于问题的,但是,假设我有一个快速排序函数,那么quick_sort(unsorted_list)仍然有点冗长,因为传递给排序函数的列表显然没有按上下文排序。
有什么想法吗?
答案 0 :(得分:18)
我喜欢用它中的复数形式命名。所以,例如,如果我有一个名单列表,我称之为names
,然后我可以写:
for name in names:
我认为看起来很不错。但通常为了您自己的理智,您应该为变量命名,以便您可以从名称中知道它们是什么。这种约定具有类型无关的额外好处,就像Python本身一样,因为names
可以是任何可迭代对象,例如元组,字典或您自己的自定义(可迭代)对象。您可以在其中任何一个上使用for name in names
,如果您有一个名为names_list
的元组,那就太奇怪了。
(从下面的评论中添加:)在某些情况下,您不必执行此操作。使用像i
这样的规范变量来索引短循环是可以的,因为i
通常以这种方式使用。如果你的变量用于多个页面的代码,那么你不能一次看到它的整个生命周期,你应该给它一个合理的名称。
答案 1 :(得分:6)
goats
变量名称应该引用它们不仅仅是它们的类型。
答案 2 :(得分:5)
Python代表可读性。所以基本上你应该命名可以提高可读性的变量。请参阅PEP20。
您应该只有一致性的一般规则,并且在以下情况下应该打破这种一致性:
应用规则会降低代码的可读性,即使是 习惯于阅读符合规则的代码的人。
与周围的代码保持一致,也可以打破它 历史原因) - 虽然这也是一个清理的机会 别人的烂摊子(真正的XP风格)
此外,使用函数命名规则:小写,必要时用下划线分隔,以提高可读性。
所有这些都取自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)
只需使用lst
或seq
(针对序列)