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.
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
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
@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