【发布时间】:2017-05-05 18:18:39
【问题描述】:
为什么要混合使用小写和大写驼峰式?
namedtuple
deque
Counter
OrderedDict
defaultdict
为什么是collections 而不是Collections?
例如,我有时会这样做:
from collections import default_dict
错了。我可以使用什么经验法则来避免将来出现此类错误?
【问题讨论】:
标签: python
为什么要混合使用小写和大写驼峰式?
namedtuple
deque
Counter
OrderedDict
defaultdict
为什么是collections 而不是Collections?
例如,我有时会这样做:
from collections import default_dict
错了。我可以使用什么经验法则来避免将来出现此类错误?
【问题讨论】:
标签: python
集合模块遵循PEP 8 Style Guide:
模块应该有简短的全小写名称。
这就是为什么它是collections
几乎无一例外,类名都使用 CapWords 约定。
这就是Counter 和OrderedDict 的原因,因为它们都是类:
>>> collections.Counter
<class 'collections.Counter'>
>>> collections.OrderedDict
<class 'collections.OrderedDict'>
namedtuple 是一个函数,所以它不遵循上面提到的样式指南。 deque 和 defaultdicts 是类型,所以它们也不是:
>>> 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 小写以实现向后兼容性。我无法想象他们会为了风格指南做出如此剧烈的名称更改。
【讨论】:
DefaultDict 和 Deque 以保持一致性。