tôi có các lớp học Python với các thuộc tính đối tượng mà chỉ tuyên bố như một phần của hoạt động các nhà xây dựng, như vậy:Làm cách nào để tạo các thuộc tính đối tượng tài liệu Python/Sphinx chỉ được khai báo trong __init__?
class Foo(object):
def __init__(self, base):
self.basepath = base
temp = []
for run in os.listdir(self.basepath):
if self.foo(run):
temp.append(run)
self.availableruns = tuple(sorted(temp))
Nếu bây giờ tôi sử dụng một trong hai help(Foo)
hoặc cố tài liệu Foo
trong Sphinx, những self.basepath
và self.availableruns
thuộc tính không được hiển thị. Đó là vấn đề đối với người dùng API của chúng tôi.
Tôi đã thử tìm kiếm một cách tiêu chuẩn để đảm bảo rằng các thuộc tính "được khai báo động" này có thể được tìm thấy (và tốt hơn là docstring'd) bởi trình phân tích cú pháp, nhưng không may mắn cho đến nay. Bất kỳ đề xuất? Cảm ơn.
Cảm ơn. Có, tôi đánh giá cao rằng các thuộc tính không thể tính toán nói chung, chỉ cần không chắc chắn nếu có một heuristic để nhận được một số trong những tuyên bố một cách đơn giản/tiêu chuẩn bằng ví dụ: quét nguồn thay vì kiểm tra đối tượng lớp. Hoặc bằng cách sửa đổi mã để khai báo các attrs này là các thuộc tính để Sphinx/help có thể "tìm" chúng. Nhưng dù sao, con trỏ đó đến cú pháp Sphinx để khai báo sự tồn tại của chúng cho mục đích doc sẽ làm tốt: chúc mừng! – andybuckley
"Hoặc bằng cách sửa đổi mã để khai báo các attrs này là thuộc tính"? "tuyên bố" không phải là một khái niệm Python. Việc sử dụng các hàm thuộc tính của các thuộc tính cho các thuộc tính của bạn sẽ hoạt động nếu bạn định tự động các thành viên được ghi lại. Điều đó có vẻ như ** hơn ** công việc hơn là chỉ đơn giản là ghi lại chúng trong docstring. –
Nhưng điều đó có nghĩa là chúng được ghi lại trên một nền tảng bình đẳng với các phương pháp khác, mà tôi nghĩ rằng cải thiện đáng kể chất lượng tài liệu.Tôi đã chuẩn bị để đưa vào một ít công việc hơn cho điều đó, nếu nó không đạt hiệu suất hoặc làm cho mã không thể hiểu được. Đó là điểm của câu hỏi ban đầu: Tôi chắc rằng tôi có thể tìm cách để làm điều đó, nhưng tôi đã tự hỏi liệu có một cách tiếp cận tiêu chuẩn (de facto) nào giúp giảm thiểu các nhược điểm hay không. – andybuckley