2013-09-23 13 views

Odpowiedz

6

Moduł zbiory następuje po PEP 8 Style Guide:

Moduły powinny mieć krótkie nazwy all-małe.

Dlatego to collections


Prawie bez wyjątku, nazwy klas wykorzystać konwencję CapWords.

Dlatego to Counter i OrderedDict, ponieważ obaj są zajęcia:

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

namedtuple jest funkcją, więc nie postępuj zgodnie z instrukcjami w stylu wymienionych powyżej. deque i defaultdict s to typy, dlatego też nie:

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

Uwaga: W Pythonie 3.5, defaultdict i deque są teraz zajęcia też:

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

Zakładam trzymali defaultdict i deque małe litery dla kompatybilności wstecznej. Nie wyobrażam sobie, że dokonają tak drastycznej zmiany nazwy ze względu na przewodnik stylu.

+6

Teraz, gdy klasy i typy mają być zunifikowane, różnica pomiędzy CamelCase dla klas Python i małymi literami dla typów C jest frustrująco niezręczna. – user2357112

+1

Dlaczego różne style dla typów i klas? Czy powinienem się przejmować faktem, że Counter jest klasą, a defaultdict jest typem, kiedy go używam? Innymi słowy, do tej pory nie przejmowałem się tym, że defaultdict jest typem, a nie klasą. Powinienem się martwić? – Baz

+0

@Baz Ja sam by mnie to nie obchodziło. W niektórych przypadkach są podobne, ale z drugiej strony ty i ja jesteśmy różnymi ludźmi. Dlaczego różne style dla typów i klas? Cóż, nie wiem. PEP 8 wydaje się nie obejmować typów. – TerryA

Powiązane problemy