Ok, vì vậy tôi đã đọc cả PEP 8 và PEP 257 và tôi đã viết rất nhiều tài liệu về các chức năng và lớp học, nhưng tôi không chắc chắn về những gì nên đi vào một chuỗi tài liệu mô-đun. Tôi đã tìm ra, ở mức tối thiểu, nó cần ghi lại các hàm và các lớp mà module xuất ra, nhưng tôi cũng đã thấy một vài mô-đun liệt kê tên tác giả, thông tin bản quyền, v.v. Có ai có ví dụ về cách một chuỗi docthon tốt nên được cấu trúc?Điều gì để đặt vào một chuỗi mô-đun python?
Trả lời
Hãy suy nghĩ về ai đó đang làm help(yourmodule)
tại lời nhắc của thông dịch viên tương tác - họ làm gì muốn để biết? (Các phương pháp trích xuất và hiển thị thông tin khác tương đương với help
về số lượng thông tin). Vì vậy, nếu bạn có trong x.py
:
"""This module does blah blah."""
class Blah(object):
"""This class does blah blah."""
thì:
>>> import x; help(x)
show:
Help on module x:
NAME
x - This module does blah blah.
FILE
/tmp/x.py
CLASSES
__builtin__.object
Blah
class Blah(__builtin__.object)
| This class does blah blah.
|
| Data and other attributes defined here:
|
| __dict__ = <dictproxy object>
| dictionary for instance variables (if defined)
|
| __weakref__ = <attribute '__weakref__' of 'Blah' objects>
| list of weak references to the object (if defined)
Như bạn thấy, các thông tin chi tiết về các lớp học (và chức năng quá, mặc dù tôi m không hiển thị một ở đây) đã được bao gồm trong các tài liệu của các thành phần đó; docstring riêng của mô-đun nên mô tả chúng rất tổng quát (nếu ở tất cả) và tập trung vào một bản tóm tắt ngắn gọn về những gì mà toàn bộ mô-đun có thể làm cho bạn, lý tưởng với một số ví dụ về doctested (giống như các hàm và lớp học lý tưởng). theit docstrings).
Tôi không thấy cách siêu dữ liệu như tên tác giả và bản quyền/giấy phép giúp người dùng của mô-đun - nó có thể được đưa vào nhận xét, vì nó có thể giúp ai đó xem xét có sử dụng lại hay sửa đổi mô-đun hay không.
Để trích dẫn specifications:
Các docstring của một kịch bản (một chương trình độc lập) nên được sử dụng như thông điệp của mình "sử dụng", in khi kịch bản được gọi với không chính xác hoặc thiếu đối số (hoặc có thể với tùy chọn "-h", cho "trợ giúp"). Một docstring như vậy nên ghi lại cú pháp của hàm và cú pháp dòng lệnh, các biến môi trường và các tệp. Thông báo sử dụng có thể khá phức tạp (một số màn hình đầy đủ) và phải đủ để người dùng mới sử dụng lệnh đúng cách, cũng như tham chiếu nhanh đầy đủ đến tất cả các tùy chọn và đối số cho người dùng tinh vi.
Chuỗi tài liệu cho mô-đun thường liệt kê các lớp, ngoại lệ và chức năng (và bất kỳ đối tượng nào khác) được mô-đun xuất, với bản tóm tắt một dòng của mỗi mô-đun.) Các chuỗi tổng hợp cho một gói (tức là, docstring của mô-đun
__init__.py
của gói) cũng nên liệt kê các mô đun và các gói con được xuất khẩu bởi gói.Chuỗi tài liệu cho số lớp nên tóm tắt hành vi của nó và liệt kê các phương pháp công khai và biến mẫu. Nếu lớp được dự định là lớp con và có giao diện bổ sung cho các lớp con, giao diện này sẽ được liệt kê riêng (trong chuỗi tài liệu). Lớp khởi tạo nên được ghi lại trong docstring cho phương thức
__init__
của nó. Các phương thức riêng lẻ nên được ghi lại bằng docstring của riêng chúng.
Các docstring của một chức năng hoặc phương pháp là một cụm từ kết thúc bằng một dấu chấm. Nó quy định hiệu ứng của hàm hoặc phương thức như một lệnh ("Thực hiện điều này", "Trả về"), không phải là mô tả; ví dụ. không viết "Trả về tên đường dẫn ...". Một multiline-docstring cho một hàm hoặc phương thức nên tóm tắt hành vi của nó và ghi lại các đối số của nó, trả về giá trị, tác dụng phụ, ngoại lệ, và hạn chế khi nó có thể được gọi (tất cả nếu có). Đối số tùy chọn phải được chỉ định. Nó nên được ghi lại liệu các đối số từ khóa có phải là một phần của giao diện hay không.
- 1. Perl Inline :: Python module, cách đặt mã vào một chuỗi
- 2. Điều gì sẽ được đặt vào AssemblyTrademarkAttribute?
- 3. Điều gì tiếp theo sau khi đọc Dive vào Python?
- 4. Eclim - Điều gì để đặt org.eclim.java.run.mainclass thành?
- 5. Đúc một int vào một chuỗi bằng Python
- 6. chèn các giá trị biến vào một chuỗi trong python
- 7. C# Đặt chuỗi vào TextBox
- 8. Mã một lớp Python để đặt chuỗi thành 0 chuỗi nếu trống
- 9. Định dạng chuỗi điều kiện Python
- 10. Trong Python, điều gì xảy ra khi bạn nhập vào bên trong một hàm?
- 11. Cài đặt biến điều kiện Python
- 12. Cách dễ nhất để đặt chỉ mục vào điều khiển bộ lặp trong .NET là gì?
- 13. Làm thế nào để nối một boolean vào một chuỗi trong Python?
- 14. Điều gì để đưa vào nguồn dữ liệu jta-persistence.xml?
- 15. Điều gì định nghĩa một chuỗi "hoạt động"?
- 16. Cách đặt một điều khiển người dùng XAML vào lưới
- 17. Điều gì sẽ sử dụng cho chuỗi Python.find?
- 18. đặt giao diện glade vào python
- 19. Điều gì đặt một @ ở phía trước của một tên biến C# làm gì?
- 20. Nhóm một chuỗi bằng Python
- 21. Kịch bản Python để làm điều gì đó cùng một lúc mỗi ngày
- 22. Thêm nhiều chuỗi vào một chuỗi
- 23. Python - Cách cắt một chuỗi bằng Python?
- 24. Điều gì đặt lịch sử vim?
- 25. Điều gì cần nghiên cứu để tham gia vào robot?
- 26. chuyển đổi một chuỗi isoformat để đối tượng python datetime
- 27. Có những công cụ gì để tạo một trình cài đặt OSX cho gói python?
- 28. Làm thế nào để môđun hóa ứng dụng JSF/Facelets/Spring bằng OSGi?
- 29. cách đặt hàm và đối số vào hàng đợi python?
- 30. Làm cách nào để bạn đặt {và} vào một chuỗi định dạng
Vì vậy, có thường xuyên bao gồm tác giả, bản quyền, v.v. trong các nhận xét ở đầu mô-đun không? –
@ 007brendan, thực tế khá phổ biến, vâng. –
@ IfLoop Tôi nghi ngờ rằng có nhiều người dùng sử dụng phương thức 'help()' trong trình thông dịch hơn người dùng chỉ đọc mã. – confused00