Trong khi tôi biết về khái niệm gõ vịt của Python, đôi khi tôi gặp khó khăn với loại đối số của các hàm hoặc loại giá trị trả về của hàm.
Bây giờ, nếu tôi tự viết hàm, tôi biết các kiểu. Nhưng điều gì sẽ xảy ra nếu ai đó muốn sử dụng và gọi các hàm của tôi, làm thế nào mà anh ấy / cô ấy dự kiến biết các loại? Tôi thường đặt thông tin kiểu trong chuỗi docstring của hàm (như: "...the id argument should be an integer..."và "... the function will return a (string, [integer]) tuple.")
Nhưng việc tra cứu thông tin trong docstring (và đặt nó ở đó, với tư cách là một người viết mã) có thực sự là cách mà nó được cho là được thực hiện?
Chỉnh sửa: Trong khi phần lớn các câu trả lời dường như hướng đến "vâng, tài liệu!" Tôi cảm thấy điều này không phải lúc nào cũng dễ dàng đối với những loại 'phức tạp'.
Ví dụ: làm thế nào để mô tả ngắn gọn trong docstring rằng một hàm trả về danh sách các bộ giá trị, với mỗi bộ giá trị có dạng (node_id, node_name, uptime_minutes) và các phần tử tương ứng là một chuỗi, chuỗi và số nguyên?
Tài liệu docstring PEP không đưa ra bất kỳ hướng dẫn nào về điều đó.
Tôi đoán đối số sẽ là trong trường hợp đó các lớp nên được sử dụng, nhưng tôi thấy python rất linh hoạt vì nó cho phép truyền những thứ này bằng cách sử dụng danh sách và bộ giá trị, tức là không có lớp.