2012-04-04 33 views
11

PEP 257 says:Tôi có thể tìm thấy các ví dụ phù hợp về quy ước PEP 257 Docstringions ở đâu?

Chèn một dòng trống trước và sau khi tất cả docstrings (một dòng hoặc đa dòng) mà tài liệu một lớp - nói chung, phương pháp của lớp được tách ra khỏi nhau bằng một đơn dòng trống, và các docstring cần phải được bù đắp từ phương pháp đầu tiên bởi một dòng trống; để đối xứng, đặt một dòng trống giữa tiêu đề lớp và docstring.

Nhưng dường như tôi không thể tìm thấy bất kỳ mã nào thực sự thực hiện việc này.

Tôi đã kiểm tra một số mô-đun tiêu chuẩn được phân phối bằng Python 2.6, thậm chí đã tìm kiếm cụ thể cho các mô-đun mà tên của Guido được đề cập. Nhưng ngay cả các mã của các công cụ xem xét mã Rietveld không IMHO không tuân thủ (xem ví dụ http://code.google.com/p/rietveld/source/browse/upload.py):

class CondensedHelpFormatter(optparse.IndentedHelpFormatter): 
    """Frees more horizontal space by removing indentation from group 
     options and collapsing arguments between short and long, e.g. 
     '-o ARG, --opt=ARG' to -o --opt ARG""" 

    def format_heading(self, heading): 
    return "%s:\n" % heading 

dòng docstring đa này không có một dòng trống ở trước và dòng trống sau là bên ngoài các dấu ngoặc kép đóng cửa .

Lớp này từ /usr/lib64/python2.6/site.py không có dòng trống trước nhưng có dòng trống trước và sau dấu ngoặc kép.

class _Helper(object): 
    """Define the built-in 'help'. 
    This is a wrapper around pydoc.help (with a twist). 

    """ 

    def __repr__(self): 

Có ví dụ nào để chứng minh PEP 257 không?

Cảm ơn trước

+1

" Danh sách "/" Thăm dò ý kiến ​​"không phải là chủ đề cho Stack Overflow. Ngoài ra, tôi không thấy làm thế nào điều này liên quan đến một vấn đề thực sự bạn đang cố gắng để giải quyết. – agf

+1

Tôi đánh giá cao nghiên cứu bạn đã thực hiện và chắc chắn các ví dụ có thể được tìm thấy ở định dạng docstring chính thức, nhưng nó không thực sự rõ ràng về những lợi ích sẽ cung cấp. Có những ví dụ ngoài những tài liệu không chính xác, một số trong số đó có lẽ được viết bởi Guido. Nếu bạn muốn viết chính xác, chỉ cần làm theo các hướng dẫn (bản thân tài liệu PEP thậm chí đưa ra các ví dụ). Tóm lại, điểm ở đây là gì? Tại sao chính xác bạn cần (nhiều hơn) ví dụ về định dạng này? –

+2

@agf: đây không phải là cuộc thăm dò ý kiến. Tôi tin rằng PEP không rõ ràng 100% ở một số khu vực và tôi đang tìm kiếm các ví dụ làm rõ các phần đó. Cụ thể tôi đang lokking cho một ví dụ về docstrings cho một lớp học phù hợp với PEP. Mã của halst hiển thị các dòng trống trước và sau chuỗi tài liệu lớp cũng như dòng trống ở cuối chính chuỗi tài liệu. Đó là một lựa chọn khác mà tôi chưa từng cân nhắc. – Bram

Trả lời

7

Không phải là một câu trả lời trực tiếp, nhưng nếu bạn muốn thực hiện theo PEP257 bạn có thể sử dụng một công cụ tôi đã viết: https://github.com/halst/pep257

tôi quá bị sốc khi thấy bao nhiêu mã (cũng trong thư viện chuẩn) thậm chí không cố gắng tuân thủ PEP257.

Có lẽ, hầu hết mọi người nghĩ rằng docstring kiểu của họ có ý nghĩa, và tôi cũng nghĩ rằng có cái gì đó vụng về với phong cách PEP257, nhưng sau khi sử dụng nó trong một thời gian tôi đã yêu với nó, và nghĩ rằng đó là cách tốt nhất để viết docstrings. Tôi luôn luôn theo dõi PEP257 ở mọi khía cạnh tôi có thể và viết công cụ để nhiều người hơn có thể thấy cách họ có thể cải thiện phong cách của họ.

Như một ví dụ, tôi đã có một kinh nghiệm vui nhộn với PEP8 và pep8 tool: khi tôi lần đầu tiên đọc PEP8 Tôi thích nó và nghĩ tôi theo nó, nhưng khi tôi đã cố gắng mã của tôi trên pep8 Tôi đã bị sốc bởi cách xa PEP8 Tôi và mã của tôi trông đẹp hơn thế nào sau khi tôi sửa các lỗi kiểu đó.

Tôi hy vọng mọi người sẽ có trải nghiệm tương tự với pep257 và bắt đầu theo dõi PEP257 một cách hạnh phúc mãi mãi sau đó.

+0

Cảm ơn, điều này chắc chắn sẽ giúp ích. Nó đã cho thấy bạn giải thích PEP hơi khác so với tôi đã làm. – Bram

+0

@Bram Thú vị! Bạn đã diễn giải một cách khác nhau những phần nào của PEP? Chỉ tò mò thôi. Có lẽ có một sai lầm trong việc giải thích của tôi. – Halst

+0

Trước khi đọc pep257.py của bạn, tôi chưa bao giờ xem các dòng trống trước ** và ** sau dấu ngoặc kép. – Bram

0

Theo như tôi thấy, tài liệu mà bạn có liên quan đến nói:

Chèn một dòng trống sau tất cả docstrings (một dòng hay nhiều dòng) tài liệu mà một lớp - nói chung , các phương thức của lớp được tách biệt với nhau bằng một dòng trống duy nhất, và dây rút cần được bù đắp từ phương thức đầu tiên bằng một dòng trống.

(tôi nhấn mạnh)

Vì vậy, ví dụ bạn đưa ra đều đúng như họ có một dòng trống sau khi docstring, do đó ngăn cách khai phương pháp tiếp theo với một dòng trống. Câu hỏi "

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