Các khuyến nghị cho việc nối dòng ngầm so với tường minh


9

Tôi muốn biết các đề xuất về Tham gia đường dây ngầm định so với Tham gia đường dây rõ ràng trong Python.

Cụ thể, bạn có thích một hình thức hơn các hình thức khác? Bạn đề nghị làm mặc định chung là gì? Bạn có tiêu chí nào để chọn cái này hơn cái kia, và nếu bạn có sở thích của cái này, khi nào bạn có ngoại lệ cho cái kia?

Tôi có một câu trả lời cho câu hỏi này phản ánh những thành kiến ​​của riêng tôi, nhưng trước khi tôi đăng câu trả lời của riêng mình, tôi muốn biết người khác nghĩ gì ... và nếu bạn có thể có một bộ tiêu chí tốt hơn những gì tôi nghĩ, sau đó tôi chắc chắn sẽ chấp nhận câu trả lời của bạn trên của riêng tôi.

Một số đề xuất có thể được khái quát hóa cho lựa chọn này trong các ngôn ngữ lập trình khác, nhưng sự thiên vị của tôi có phần mạnh hơn đối với Python do một số tính năng dành riêng cho ngôn ngữ, vì vậy tôi muốn biết cả lý do chung và trung tâm Python mà bạn có thể có chủ đề này

Đối với một số nền tảng, cuộc thảo luận đã xảy ra xung quanh một câu hỏi cụ thể về stackoverflow , nhưng tôi nghĩ rằng việc chuyển cuộc thảo luận sang đây là một câu hỏi để tránh làm lộn xộn câu trả lời trên SO với tiếp tuyến này vì nó đã lạc đề câu hỏi ban đầu. Bạn có thể xem câu hỏi đó và câu trả lời của nó cho các đoạn mã ví dụ đã đưa ra cuộc thảo luận.

Đây là một ví dụ đơn giản:

join_type = "explicit"
a = "%s line joining" \
    % (join_type)
# versus
join_type = "implicit"
b = ("%s line joining"
     % (join_type))

Câu hỏi thực hành tốt nhất là ngoài chủ đề để xem xét mã. Tôi đã chuyển câu hỏi của bạn đến một địa điểm tốt hơn.
Winston Ewert

1
@WinstonEwert trước khi đăng Tôi đã xem qua Câu hỏi thường gặp về CodeReviewCâu hỏi thường gặp của Lập trình viên và tôi đã chọn CodeReview vì nó nói rõ rằng các loại câu hỏi để hỏi bao gồm "Cách sử dụng tốt nhất và sử dụng mẫu thiết kế trong mã của bạn". Tôi đã bao gồm một phiên bản đơn giản của mã trong câu hỏi, vậy làm thế nào là ngoài chủ đề này?
aculich

@WinstonEwert Tôi đã đăng một câu hỏi trong Meta về việc làm rõ Câu hỏi thường gặp về CodeReview nếu bạn quan tâm bình luận về vấn đề này ở đó.
aculich

Câu trả lời:


8

Có một tài liệu phong cách mã hóa được gọi là PEP8. Nó khuyến cáo chống lại việc sử dụng \<NL>bất cứ nơi nào dấu ngoặc đơn có thể được sử dụng.

Cách gói hàng dài ưa thích là sử dụng tiếp tục dòng ngụ ý của Python bên trong dấu ngoặc đơn, dấu ngoặc và dấu ngoặc. Các dòng dài có thể được chia thành nhiều dòng bằng cách gói các biểu thức trong ngoặc đơn. Chúng nên được sử dụng theo sở thích để sử dụng dấu gạch chéo ngược để tiếp tục dòng. Hãy chắc chắn để thụt dòng tiếp tục một cách thích hợp. Vị trí ưa thích để ngắt xung quanh toán tử nhị phân là sau toán tử, không phải trước toán tử.

Toàn văn: http://www.python.org/dev/peps/pep-0008/ (phần Bố cục mã)

Nó không bắt buộc nhưng nó xác định các thực tiễn tốt có thể chấp nhận được, đặc biệt hữu ích nếu bạn có nhiều thành viên Python trong nhóm của mình.


1

Tôi có xu hướng sử dụng nối dòng ngầm vì tôi thấy nó dễ đọc hơn và sự hỗ trợ từ các biên tập viên thường tốt hơn đối với việc thụt lề và tô sáng toàn bộ biểu thức nhờ khớp dấu ngoặc đơn.


0

Hiện tại, tôi thích

join_type = "kiding"
a = "%s line joining" % (join_type)

B-))

.

Tôi có xu hướng thích Tham gia các dòng rõ ràng vì tôi không thích sự lộn xộn của parens ở cuối các biểu thức.
Nhưng tôi thích Implicit Lines Joining để giảm độ rộng chiếm dụng bằng cách viết một chuỗi.
Sau đó, trong một số trường hợp, tôi lúng túng không trộn lẫn hai cách


1
Bỏ qua một bên, tôi không thích tham gia rõ ràng vì nó đòi hỏi phải gõ nhiều hơn và thật khó để giữ tất cả các dấu gạch chéo ngược được xếp ngay ngắn khi mã được chỉnh sửa.
martineau

rõ ràng @eyquem chưa bao giờ viết bất kỳ LISP nào ...
cowbert
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.