2011-03-09 33 views
41

Python'da çok uzun bir if ifadem var. Birkaç satıra ayırmanın en iyi yolu nedir? En iyi şekilde en okunaklı/yaygın demek istiyorum.Çok Uzun Python Bildirimi

+10

, kod göster lütfen! –

cevap

96

PEP8'a göre, uzun çizgiler parantez içine yerleştirilmelidir. Parantez kullanırken satırlar ters eğik çizgi kullanmadan kırılabilir. Ayrıca, boolean işleçlerinden sonra satır sonu 'u eklemeyi denemelisiniz. Örneğin

:

İşte
if (abcdefghijklmnopqrstuvwxyz > some_other_long_identifier and 
    here_is_another_long_identifier != and_finally_another_long_name): 
    # ... your code here ... 
    pass 
+0

E129'u kapattığınızdan emin olun veya Andrew Clark'ın çözümünü kullanın (http://stackoverflow.com/a/5253419/981933). Aksi takdirde PEP8 size bir hata verecektir. Bkz .: https://github.com/PyCQA/pep8/issues/126 ve https://github.com/PyCQA/pep8/issues/386 –

+0

"E129" özelliğini kapatmayın, sadece ona uygun davranın. Onsuz şeyleri okumak zor. –

+0

Eh, E129'a nasıl uyulacağını bilmiyorum. Denediğim şeyden memnun değil. – user2061057

20

örnek hat uzunluğu sınırlayıcı üzerinde PEP 8 doğrudan geçerli:

class Rectangle(Blob): 

    def __init__(self, width, height, 
       color='black', emphasis=None, highlight=0): 
     if (width == 0 and height == 0 and 
       color == 'red' and emphasis == 'strong' or 
       highlight > 100): 
      raise ValueError("sorry, you lose") 
     if width == 0 and height == 0 and (color == 'red' or 
              emphasis is None): 
      raise ValueError("I don't think so -- values are %s, %s" % 
          (width, height)) 
     Blob.__init__(self, width, height, 
         color, emphasis, highlight) 
+3

Fakat bu, E129'a, görsel olarak girintili bir çizgiye, sonraki mantıksal çizgi ile aynı girintiye neden olarak, pep8 tiftik denetleyicisini kullanıyor. – ArtOfWarfare

+0

@ArtOfWarfare Girinti bozuldu. Düzeltme, incelenmeyi bekliyor veya doğrudan [PEP8] örneğinde göründü (http://legacy.python.org/dev/peps/pep-0008/). – altendky

+0

Okunabilirlik, bir satırda birden fazla parametre koymaktan zarar görüyor, ancak daha sonra hala kırılıyor ve kalanını ikinci hatta koyuyor. Her ikisinden sonra kırın ya da çok uzun değilse, hepsini bir satırda tutun. "Yükseklik" konusunda çok özel olan şey, bundan sonra bir mola var mı? " "Neden genişlik" veya "renk" den sonra kırılmasın? Bu tür sorular sadece sıkı bir kural takip etmeyen kırılma ile ortaya çıkar. – Zelphir