2011-03-09 32 views

Trả lời

96

Theo PEP8, các dòng dài sẽ được đặt trong dấu ngoặc đơn. Khi sử dụng dấu ngoặc đơn, các dòng có thể được chia nhỏ mà không sử dụng dấu gạch chéo ngược. Bạn cũng nên cố gắng đặt ngắt dòng sau toán tử boolean.

Ví dụ:

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

Đảm bảo tắt 'E129' hoặc sử dụng giải pháp của Andrew Clark (http://stackoverflow.com/a/5253419/981933) nếu không PEP8 sẽ gửi một lỗi cho bạn. Xem: https://github.com/PyCQA/pep8/issues/126 và https://github.com/PyCQA/pep8/issues/386 –

+0

Không tắt 'E129', chỉ cần tuân thủ nó. Thật khó để đọc những thứ không có nó. –

+0

Vâng, tôi không biết cách tuân thủ 'E129'. Nó không hạnh phúc với bất cứ điều gì tôi cố gắng. – user2061057

20

Dưới đây là ví dụ trực tiếp từ PEP 8 trên giới hạn chiều dài dòng:

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

Nhưng điều này gây ra E129, trực quan thụt lề dòng với cùng thụt lề như dòng logic tiếp theo, sử dụng bộ kiểm tra pep8 lint. – ArtOfWarfare

+0

@ArtOfWarfare Sự thụt đầu dòng bị rối tung lên. Sửa chữa đang chờ xem xét hoặc xem trực tiếp ví dụ trong [PEP8] (http://legacy.python.org/dev/peps/pep-0008/). – altendky

+0

Khả năng đọc bị hỏng bằng cách đặt nhiều tham số trên một dòng, nhưng sau đó vẫn phá vỡ và đặt phần còn lại trên dòng thứ hai. Hoặc là phá vỡ sau mỗi hoặc giữ tất cả trong một dòng, nếu nó không phải là quá dài. "Có gì đặc biệt về" chiều cao ", rằng có một break sau nó?" "Tại sao không phá vỡ sau' width' hoặc 'color'?" Những loại câu hỏi này chỉ phát sinh với sự phá vỡ, mà không tuân theo một quy tắc nghiêm ngặt. – Zelphir

Các vấn đề liên quan