2010-03-10 36 views

cevap

31

Yapabilirsin ama yapmamalısın. Yerleşik isimlerin kullanılması iyi bir alışkanlık değildir, çünkü bu kapsamda yerleşik olanın adını geçersiz kılarlar. Bu kelimeyi kullanmanız gerekiyorsa, verilen içerik için biraz değiştirin.

Büyük olasılıkla type kullanılmayan küçük bir proje için önemli olmasa da, anahtar sözcüklerin/yerleşiklerin adlarını kullanma alışkanlığınızdan uzak durmak daha iyidir.

single_trailing_underscore_: Python anahtar sözcüğü, ör çatışmaları önlemek için Kongre tarafından kullanılan kesinlikle bir anahtar kelime ile çakışan bir adı kullanmak gerekiyorsa Python Style Guide bunun için bir çözüm sağlar

+13

BTW, bu tür bir jenerik, 'over' kelimesi, "car_type" veya "animal_type" gibi bir qualifer ekleyerek, 'tipe' kullanmak için zaten zaten – mjv

+0

zaten kendi kendini belgeleyen bir program için yapar, ama ben her zaman nefret ediyorum Göründüğü gibi. şimdi kullanıyorum 'typ' – rbp

+2

Hahah, bu bir şaka @ rbp, değil mi? ...sağ? – Bloke

2

Yapabilir, ancak yerleşik ad türünü maskeleyebilirsiniz. Yani bunu yapmamak daha iyidir.

3

Tanımlayıcı kuralları izleyen herhangi bir anahtar sözcük olmayan bir tanımlayıcı olarak kullanabilirsiniz. type bir anahtar kelime değildir, ancak kullanımı type öğesinin içerisine gölge uygular.

8

Yapabilirsin ve bu iyi. Gölgeli gömme yapıları için tavsiye edilmemesine rağmen, bir belirleyicinin ortak olması halinde, kafa karışıklığı ve çarpışmayı arttıracağı için, daha kuvvetli bir şekilde uygulanır. Görünüşe göre tip buradaki karışıklığa neden olacaktır (ancak bunu herkesten daha fazla bileceksiniz) ve tam olarak sahip olduklarınızı kullanabilirim. Aşağıdakiler için _type kullanabilirsiniz

+3

+1. Sanırım bu, muhtemelen bir yerleşimi gölgelemenin teknik probleminden çok daha büyük bir mesele: Kodları okuyan biri (belki de bunu yazan kişi) 'türünün' yerleşime atıfta bulunmasını bekleyebilir. Tesadüfen yapı tipini yanlışlıkla gölgelendirme şansı küçük gözüküyor: gerçek kodda çoğu kez kullanılmıyor. –

-1

o

# Example 
def foo(_type): 
    pass 

Eğer type kullanırsanız,

>>> #For Example 
>>> type('foo') 
<type 'str'> 
>>> type = 'bar' 
>>> type('foo') 
... 
Traceback (most recent call last): 
File "<input>", line 1, in <module> 
TypeError: 'str' object is not callable 
İlgili konular