2013-09-23 6 views

答えて

6

コレクションモジュールはPEP 8 Style Guideを、以下:

モジュールが短い、すべて小文字の名前を持つ必要があります。

それはほとんど例外なく、クラス名がCapWords規則を使用collections


だ理由です。

彼らは両方のクラスであるため、それは、CounterOrderedDictだ理由です:

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

namedtupleは、関数であるので、上記のスタイルガイドに従っていません。

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

私は、彼らがdefaultdictを維持し、想定していますdequedefaultdict sがタイプですので、彼らもない。

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

注:Pythonの3.5で、defaultdictと両端キューは今もクラスであります後方互換性のために小文字のdeque。私は彼らがスタイルガイドのためにそのような徹底的な名前の変更を行うと思います。

+6

クラスと型は統一されているはずですから、CamelCase for PythonクラスとC型の小文字の違いはイライラします。 – user2357112

+1

タイプとクラスのスタイルが異なるのはなぜですか?カウンターはクラスであり、defaultdictはそのタイプを使用しているという事実を気にする必要がありますか?言い換えれば、これまでは、defaultdictがクラスではなく型であるという事実に気を配っていませんでした。私は気にする必要がありますか? – Baz

+0

@Baz私自身は気にしません。彼らはいくつかのケースでは似ていますが、あなたと私は別の人です。なぜ型やクラスのスタイルが違うのですか?まあ私は知らない。 PEP 8はタイプをカバーしていないようです。 – TerryA

関連する問題