2012-03-16 24 views
6

Một chuỗi tài liệu python phải được đưa ra dưới dạng chuỗi chữ; nhưng đôi khi rất hữu ích khi có các quy tắc tương tự cho một số hàm (ví dụ, các hàm tạo khác nhau) hoặc một số phương thức truy cập có thể chấp nhận cùng một danh sách các đối số (và sau đó dựa vào cùng một phương thức ẩn), vì vậy sẽ rất tốt khi sử dụng mô tả ở mọi nơi. Đối với những trường hợp như vậy, tôi có thể xây dựng một docstring bằng cách gán cho __doc__, mà tôi làm bằng phương tiện của một trang trí đơn giản. Hệ thống hoạt động rất độc đáo (trong python 2), và tôi hài lòng với cách đơn giản, rõ ràng và được đóng gói tốt.Sửa đổi một chuỗi mã vạch python bằng trình trang trí: Có phải là một ý tưởng hay không?

Câu hỏi: Đây có phải là một ý tưởng hay không? Cụ thể, có các công cụ sẽ bị nhầm lẫn bởi thiết lập này (ví dụ: bất kỳ thứ gì trích xuất docstrings từ nguồn thay vì từ bytecode). Là giải pháp vẫn sẽ làm việc trong python 3? Có những lý do hoặc hoàn cảnh nào khác có thể làm cho điều này trở nên vô ý?

+0

"các nhà thầu khác nhau"? Tôi giả sử bạn có nghĩa là một số loại chức năng của nhà máy, bởi vì bạn chỉ có thể có một '__init__'. –

+0

Tôi không nghĩ rằng "chức năng nhà máy" là đúng. Tôi đã đề cập đến các thành viên tĩnh của một lớp, tạo ra một thể hiện của cùng một lớp. Tất cả chúng đều là các nhà xây dựng đa hình trong một ngôn ngữ hỗ trợ trực tiếp. Nhưng có, các chức năng của nhà máy có thể là một trường hợp sử dụng khác. – alexis

+0

Tôi sẽ coi đó là một loại nhà máy, vâng. Không có bất kỳ sự khác biệt nào giữa các hàm thành viên tĩnh và các hàm miễn phí (để sử dụng thuật ngữ C++), bên cạnh việc đặt tên không gian. Mặc dù Python có các khái niệm "phương thức lớp" và "phương thức tĩnh" riêng biệt. –

Trả lời

4

Nó không nên phá vỡ bất kỳ công cụ và nó sẽ làm việc trên Python 3.

Nó là ok Nếu nó không làm tổn thương một ví dụ mã nguồn dễ đọc, bạn vẫn có thể tìm ra những chức năng thực hiện và cách sử dụng nó.

Vấn đề có thể là nó che dấu thiết kế kém. Nếu một số phương thức sử dụng cùng một danh sách các đối số thì mã sẽ được tái cấu trúc (tạo một đối tượng làm việc với danh sách) thay vì được vá bằng cách tạo ra các tài liệu lặp đi lặp lại.

+0

Cảm ơn! Tốt để nghe. Tôi nghĩ rằng thiết kế là ok: Các phương pháp tất cả gọi phương thức thực hiện giống nhau, và làm những việc như trả về kết quả tìm kiếm (từ nội dung của đối tượng) trong các định dạng khác nhau. Thật tuyệt khi có các tên khác nhau tại giao diện cho các hoạt động khác nhau và dù sao cũng có một API hiện có với các tên được chuẩn hóa. Về các tài liệu, thật dễ dàng để xem xét phương thức triển khai khi đọc mã nguồn. Tuy nhiên, đối với trợ giúp tương tác, các phương thức giao diện phải được ghi lại. – alexis

+0

Đã mở lại câu hỏi vì tôi hy vọng sẽ nhận được nhiều phản hồi hơn về vấn đề này. Không có ý định phạm tội! – alexis

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