为什么要混合使用小写和大写驼峰式?
namedtuple
deque
Counter
OrderedDict
defaultdict
为什么collections
而不是Collections
?
例如,我有时会这样做:
from collections import default_dict
因为失误。我可以使用什么经验法则来避免将来出现此类错误?
为什么要混合使用小写和大写驼峰式?
namedtuple
deque
Counter
OrderedDict
defaultdict
为什么collections
而不是Collections
?
例如,我有时会这样做:
from collections import default_dict
因为失误。我可以使用什么经验法则来避免将来出现此类错误?
集合模块遵循PEP 8 样式指南:
模块应该有简短的全小写名称。
这就是为什么它collections
几乎无一例外,类名都使用 CapWords 约定。
这就是为什么它是Counter
and OrderedDict
,因为它们都是类:
>>> collections.Counter
<class 'collections.Counter'>
>>> collections.OrderedDict
<class 'collections.OrderedDict'>
namedtuple
是一个函数,所以它不遵循上面提到的样式指南。deque
和defaultdict
s 是类型,所以它们也不是:
>>> 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'>
我认为他们保留defaultdict
并deque
小写是为了向后兼容。我无法想象他们会为了风格指南而做出如此剧烈的名称更改。