2017-05-30 15 views
7

Có một chức năng như:Python: docstrings và gõ chú thích

def foo(x: int) -> float: 
    return float(x) 

Tôi muốn sử dụng một docstring NumPy giống như sau:

def foo(x: int) -> float: 
    """ 
    Parameters 
    ---------- 
    x 
     Input parameter 

    Returns 
    ------- 
    The output value. 
    """ 
    return float(x) 

Lưu ý rằng:

  • Tôi không muốn chỉ định kiểu tham số nữa.
  • Tôi không muốn chỉ định loại trả lại.
  • Tôi muốn tiện ích đó có thể đọc các loại chú thích (và viết chúng trong tài liệu HTML được tạo).

Có phần mở rộng Sphinx hỗ trợ điều đó không? Bạn có đề xuất một cú pháp khác không?

+0

Tôi không thấy lý do tại sao giảm giá. Tôi có nghĩa là bạn có thể đọc nó như yêu cầu một công cụ, nhưng bạn cũng có thể trả lời câu hỏi là "cho rằng tôi có tài liệu nhân sư, làm cách nào để đưa tài liệu này vào tài liệu?" –

+0

Tôi biết rằng mypy cho phép bạn chỉ định đối số và kiểu trả về và sẽ tăng ngoại lệ hoặc cảnh báo trong thời gian chạy nếu một loại khác với những gì bạn đã xác định. Không biết liệu thông tin này có hữu ích hay không. – Rosh

Trả lời

1

Tiện ích mở rộng tiêu chuẩn là autodoc. Tiện ích mở rộng Napoleon hỗ trợ Google- và NumPy-phong cách docstrings.

+0

Napoléon không hỗ trợ tài liệu theo phong cách NumPy, nhưng đối với những gì tôi đã thấy, nó mong đợi một kiểu trả về trong docstring, phải không? (Đó là điều tôi muốn tránh) – Peque

+0

Không, [Nhân sư có thể suy ra kiểu trả về] (http://www.sphinx-doc.org/en/stable/ext/napoleon.html#type-annotations) từ chú thích. – phd

+1

Có thể nó có thể, nhưng khi tạo tài liệu, tôi vẫn thấy trường "Loại trả về trống" khi sử dụng tài liệu NumPy. Ngoài ra, các tham số và kiểu trả về được hiển thị trong tài liệu chỉ trong dấu vân tay hàm, không phải trong mô tả tham số thực tế cũng như mô tả trả về. Bạn đã thử bản thân để xem liệu bạn có nhận được kết quả mong đợi không? – Peque

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