2013-09-23 13 views

cevap

6

koleksiyonları modülü PEP 8 Style Guide aşağıdaki gibidir:

Modüller kısa olmalıdır, hepsi küçük harf isimler. o collections


neredeyse istisnasız sınıf isimleri CapWords kuralını kullanmak neden

budur.

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

namedtuple bir fonksiyondur o yukarıda belirtilen stil kılavuzu takip etmez, yani: o Counter ve OrderedDict neden ikisi de sınıfları çünkü

, buna bağlıdır.

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

Onların defaultdict tutulur ve varsayalım: deque ve defaultdict s türleridir, bu yüzden de yok:

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

Not: Python 3.5 ile defaultdict ve deque çok geç sınıflardır Geriye dönük uyumluluk için deque küçük harf. Bir stil rehberi uğruna böyle büyük bir isim değişikliği yapacaklarını hayal bile edemezdim.

+6

Artık bu sınıfların ve türlerin birleştirilmiş olması gerektiğinden, CamelCase for Python sınıfları ve C türleri için küçük harf arasındaki fark sinir bozucu bir şekilde garip. – user2357112

+1

Neden türler ve sınıflar için farklı stiller? Sayacın bir sınıf olduğu gerçeğini ve bunları kullandığımda varsayılan bir varsayımın olması gerektiğine dikkat etmeli miyim? Başka bir deyişle, şimdiye kadar, standartların bir sınıftan ziyade bir tür olduğu gerçeğini önemsemedim. Umursamalımıyım? – Baz

+0

@Baz Ben kendim umurumda değil. Bazı durumlarda benzerler, ama yine siz ve ben farklı insanlarız. Neden türleri ve sınıfları için farklı stiller? Ben de bilmiyorum. PEP 8, türleri kapsamıyor gibi görünmüyor. – TerryA

İlgili konular