为什么小写和UpperCamelCase的混合?
namedtuple
deque
Counter
OrderedDict
defaultdict
Run Code Online (Sandbox Code Playgroud)
为什么collections而不是Collections?
我有时会这样做:
from collections import default_dict
Run Code Online (Sandbox Code Playgroud)
因为失误.我可以使用什么经验法则来避免将来出现这样的错误?
馆藏模块遵循PEP 8样式指南:
模块应具有简短的全小写名称.
这就是为什么 collections
几乎无一例外,类名使用CapWords约定.
这就是为什么它Counter和OrderedDict,因为他们是两个类:
>>> collections.Counter
<class 'collections.Counter'>
>>> collections.OrderedDict
<class 'collections.OrderedDict'>
Run Code Online (Sandbox Code Playgroud)
namedtuple是一个函数,所以它不遵循上面提到的样式指南.deque和defaultdicts是类型,所以它们也不是:
>>> collections.deque
<type 'collections.deque'>
>>> collections.namedtuple
<function namedtuple at 0x10070f140>
>>> collections.defaultdict
<type 'collections.defaultdict'>
Run Code Online (Sandbox Code Playgroud)
注意:使用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'>
Run Code Online (Sandbox Code Playgroud)
我以为他们不停地defaultdict和deque小写的向后兼容性.我不认为他们会为了风格指南而做出如此大的改名.
| 归档时间: |
|
| 查看次数: |
465 次 |
| 最近记录: |