Tôi có một câu lệnh if rất dài trong Python. Cách tốt nhất để chia thành nhiều dòng là gì? Bởi tốt nhất tôi có nghĩa là dễ đọc nhất/phổ biến.Rất Dài Nếu Tuyên Bố trong Python
Trả lời
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
Đả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 –
Không tắt 'E129', chỉ cần tuân thủ nó. Thật khó để đọc những thứ không có nó. –
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
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)
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
@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
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
- 1. DBNull nếu tuyên bố
- 2. Jinja2 Nếu tuyên bố
- 3. Python - Để đánh giá logic trong "nếu" tuyên bố
- 4. Python đơn giản nếu hoặc logic tuyên bố
- 5. nếu tuyên bố trong javascript luôn đúng
- 6. LINQ Nếu Bản Tuyên Bố
- 7. Từ điển Python vs Nếu Tốc độ Tuyên bố
- 8. nếu tuyên bố trong đường ray
- 9. Nếu tuyên bố trong chọn (ORACLE)
- 10. Python Nếu tuyên bố có nhiều điều kiện
- 11. Tuyên bố biến Python
- 12. Tuyên bố, tuyên bố, tuyên bố
- 13. DropDownListFor gọi lại hoặc nếu tuyên bố
- 14. Simplifing một lồng NẾU tuyên bố
- 15. Độ dài tuyên bố tối đa trong Oracle
- 16. 'Nếu' tuyên bố và ruột kết
- 17. Biến phạm vi nếu có tuyên bố
- 18. mysql CHỌN NẾU tuyên bố với OR
- 19. Lồng nhau nếu tuyên bố khác
- 20. Nếu và các tuyên bố khác Bug
- 21. Javascript instanceof Nếu Bản Tuyên Bố
- 22. Làm thế nào để phá vỡ một chặng đường dài với tuyên bố trong python
- 23. Fortran NẾU tuyên bố với những con số/nhãn chứ không phải tuyên bố khác
- 24. Freemarker: một enum trong một tuyên bố nếu
- 25. Nếu tuyên bố với nhiều hành động trong R
- 26. Nếu tuyên bố trong Điều khoản ở đâu
- 27. Python làm thế nào để kiểm tra nếu biến tồn tại và chiều dài của nó, trong một nếu tuyên bố?
- 28. Python tuyên bố ngắn 'if-else'
- 29. Python MYSQL cập nhật tuyên bố
- 30. Làm thế nào để xử lý một tuyên bố chuỗi SQL dài bằng Python
Hiện mã, xin vui lòng! –