Danh sách nhiều dòng Python
Vì vấn đề đã nảy sinh trong một số dự án python (bao gồm cả pylint và black), tôi nghĩ PEP-8 sẽ được hưởng lợi từ việc chính xác hơn một chút https. //www. con trăn. trạng thái org/dev/peps/pep-0008/#indentation
và sau đó đưa ra hai ví dụ vâng, nó mang lại
(có 1 dấu đầu dòng) và không có nó cho
câu hỏi của tôi Là
"khả thi" ? đặc biệt nếu bạn thấy ví dụ khác này
trong đó một bình luận được đưa ra theo cách có thể để chỉ có 1 vết lõm vì vậy ít nhất chuỗi tài liệu phải đóng vai trò tương tự và cho phép
Tôi sẽ giải thích các ví dụ mà bạn trích dẫn là hỗ trợ việc sử dụng 0 trên một dòng riêng, nếu lập trình viên muốn sử dụng kiểu đó. Tuy nhiên, tôi cũng sẽ rất vui nếu ai đó nói rằng PEP 8 không có lập trường nào về phong cách nàyChắc chắn nếu ai đó muốn cấm một phong cách cụ thể, thì
Nếu ai đó muốn khẳng định rằng PEP 8 cấm kiểu này, thì (a) họ phải có trách nhiệm chứng minh PEP 8 đưa ra khẳng định đó ở đâu và (b) đối với tôi, việc đưa ra khẳng định đó là một sự lãng phí thời gian vô nghĩa, Trường hợp ranh giới duy nhất là các công cụ như pycodestyle, kiểm tra kiểu cho các dự án, có thể cần diễn giải PEP 8 khá nghiêm ngặt để triển khai kiểu “tuân thủ PEP 8”. Nhưng các cuộc tranh luận về cách họ chọn diễn giải PEP 8 thực sự là vấn đề đối với họ - nếu người dùng của họ không đồng ý với cách diễn giải của họ, họ có thể thêm cờ để cho phép người dùng sửa đổi kiểu cơ sở, ghi lại diễn giải của họ hoặc bất cứ điều gì họ chọn
Nói chung, tôi đồng ý với quan điểm này, nhưng chỉ khi có sự nhầm lẫn thực sự xung quanh chủ đề liên quan đến phát triển thư viện tiêu chuẩn. Tôi đã phát hiện ra một vài ví dụ trong bài viết trên. Phần lớn nằm trong một tệp thử nghiệm duy nhất (_______11), chỉ có một phiên bản duy nhất xuất hiện trong mã thư viện tiêu chuẩn thực tế ( 0 dòng 152, có trước repo GitHub)
Cá nhân tôi không nghĩ có vấn đề với cách giải quyết phạm vi hiện tại trong PEP8. Ngay dòng đầu tiên đã ghi rõ
Trong đoạn cuối cùng của phần giới thiệu, cũng có
Tôi hiểu rằng sự hiểu lầm về phạm vi của nó chủ yếu xuất phát từ việc nó là hướng dẫn tạo kiểu Python nổi tiếng nhất Để giải thích một chút về lý do của tôi vì không muốn đưa vào một ví dụ rõ ràng về một dòng “). ”, Tôi vẫn chưa tin rằng đó là nguồn gốc của sự nhầm lẫn thực sự hoặc một vấn đề thực sự trong bối cảnh phát triển stdlib. Nếu chúng tôi kết thúc việc thêm phần làm rõ chỉ vì có một số nhầm lẫn trong các dự án khác, đặc biệt là đối với hai dự án dành riêng cho định dạng mã cho mục đích chung, thì tôi nghĩ điều đó sẽ càng làm tăng thêm quan niệm sai lầm rằng PEP8 được dự định áp dụng như một kiểu Python phổ quát Cũng có điều cần nói về việc không bao gồm mọi ví dụ có thể có về những việc nên làm và không nên làm trong PEP8. Bao gồm tất cả mọi thứ hầu như là không thể và cố gắng làm như vậy có thể dẫn đến việc tài liệu trở nên quá tải với các ví dụ có ý nghĩa tốt nhưng ít liên quan Đặt giá trị 2 xu của tôi vào một chuỗi dài và cũ Tôi nghĩ rằng PEP-8 rõ ràng từ chối 0 được gắn thẻ trên các dòng sau. Có lẽ ai đó sẽ thích nếu PEP-8 nói điều gì đó khác biệt và đang tìm kiếm sơ hở để thoát khỏi tầm nhìn của họ. Nhưng từ những gì tôi đọc được, tinh thần của PEP-8 đủ rõ ràng về chủ đề nàyÝ kiến của tôi là 0 sai vì hai lý doLý do 1. diễn giải trực quan Trong Python, khoảng trắng có ý nghĩa về mặt cấu trúc. Điều đó có nghĩa đen là khi bạn tab sang phải, bạn nói với người đọc “điều này bắt đầu từ đây”. Khi bạn rời tab, bạn nói "điều này kết thúc ở đây". Khi điều hướng mã nhanh, điều này rất quan trọng vì nó cho phép bạn bỏ qua nhiều đoạn mã mà không cần đọc và không làm gián đoạn mắt Có sự khác biệt rõ ràng giữa “ 3” được gắn thẻ bên trái và “ 0” được gắn thẻ bên trái. Và nó là cái này. Trong từ điển, định nghĩa bắt đầu khi bạn nhập và kết thúc khi bạn bỏ
Nhưng khi bạn làm điều tương tự cho một 0, bạn đã phá vỡ quy tắc này________số 8Bạn không bao giờ vi phạm quy tắc này ở bất kỳ nơi nào khác trong python hoặc hướng dẫn kiểu của nó Nếu đây là một mẫu lặp lại… nếu mỗi 0 xuất hiện trên dòng riêng của nó và được đánh dấu lại bên trái, mắt bạn sẽ nhanh chóng nhận ra hình dạng. Nhưng bởi vì điều này đang được sử dụng trong một trường hợp đặc biệt nên nó có xu hướng làm họ giật mắt mỗi khi nó xảy ra. Cá nhân tôi thấy điều này làm chậm quá trình đọc mã theo một mức độ lớnLý do 2. Điều này dường như chống lại PEP-8 Sẽ là vô lý nếu mong đợi PEP-8 cấm rõ ràng mọi thứ mà mọi người có thể nghĩ ra. Vì vậy, không có gì đáng ngạc nhiên khi không có “không…” trong trường hợp này Nhưng PEP-8 cung cấp một hộp công cụ về cách mọi thứ nên tìm kiếm trong một số trường hợp nhất định. Nhưng có một mâu thuẫn "làm điều này điều khác". PEP 8 trạng thái (đủ rõ ràng)
PEP 8 đã cho bạn biết rõ ràng cách “phân biệt các đối số với phần còn lại”. Trừ khi bạn có lý do thực sự chính đáng để đi chệch khỏi điều này, nếu không thì bạn thực sự không thể bỏ qua nó và vẫn tuyên bố tuân theo PEP-8 Đa dòng trong Python là gì?Trong Python, bạn có nhiều cách khác nhau để chỉ định một chuỗi nhiều dòng. Bạn có thể có một chuỗi được chia thành nhiều dòng bằng cách đặt nó trong ba dấu ngoặc kép . Ngoài ra, dấu ngoặc cũng có thể được sử dụng để trải một chuỗi thành các dòng khác nhau. Hơn nữa, dấu gạch chéo ngược hoạt động như một ký tự tiếp tục dòng trong Python.
Làm cách nào bạn có thể tạo chuỗi nhiều dòng trong Python?Sử dụng dấu ngoặc đơn và dấu nháy đơn/kép
. Như hình trên, chúng ta có thể sử dụng cả dấu ngoặc đơn (' ') và dấu ngoặc kép (" ") |