集合中的命名约定:为什么有些小写和其他CapWords?

时间:2013-09-23 07:18:32

标签: python

为什么小写和UpperCamelCase的混合?

namedtuple
deque   
Counter 
OrderedDict
defaultdict

为什么collections代替Collections

我有时会这样做:

from collections import default_dict

错误。我可以使用什么经验法则来避免将来出现这样的错误?

1 个答案:

答案 0 :(得分:8)

集合模块遵循PEP 8 Style Guide

  

模块应该有简短的全小写名称。

这就是collections

的原因
  

几乎无一例外,类名都使用CapWords惯例。

这就是CounterOrderedDict的原因,因为它们都是类:

>>> collections.Counter
<class 'collections.Counter'>
>>> collections.OrderedDict
<class 'collections.OrderedDict'>

namedtuple是一个函数,因此它不遵循上面提到的样式指南。 dequedefaultdict是类型,因此它们也不是:

>>> collections.deque
<type 'collections.deque'>
>>> collections.namedtuple
<function namedtuple at 0x10070f140>
>>> collections.defaultdict
<type 'collections.defaultdict'>

注意:使用Python 3.5,defaultdict和deque现在也是类:

>>> import collections
>>> collections.Counter
<class 'collections.Counter'>
>>> collections.OrderedDict
<class 'collections.OrderedDict'>
>>> collections.defaultdict
<class 'collections.defaultdict'>
>>> collections.deque
<class 'collections.deque'>

我认为它们保持defaultdictdeque小写以便向后兼容。我不认为他们会为了风格指南而改变这么大的名字。