2017-05-30 4 views
7

mit einer Funktion wie:Python: Docstrings und Typenannotationen

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

Ich möchte eine NumPy artige docstring wie folgt verwenden:

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

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

Beachten Sie, dass:

  • Ich möchte den Parametertyp nicht erneut angeben.
  • Ich möchte den Rückgabetyp nicht erneut angeben.
  • Ich möchte diese Erweiterung in der Lage sein, die annotierten Typen zu lesen (und sie in die generierte HTML-Dokumentation schreiben).

Gibt es eine Sphinx-Erweiterung, die das unterstützt? Würden Sie eine andere Syntax empfehlen?

+0

Ich sehe nicht, warum Downvote. Ich meine, du könntest es lesen, als würdest du nach einem Werkzeug fragen, aber du könntest auch die Frage beantworten, "da ich Sphinx-Dokumentation habe, wie bekomme ich das in die Dokumente?" –

+0

Ich weiß, dass Sie mit mypy Argument- und Rückgabetypen angeben können und während der Laufzeit Ausnahmen oder Warnungen auslösen, wenn sich ein Typ von dem unterscheidet, den Sie definiert haben. Ich weiß nicht, ob diese Info hilft. – Rosh

Antwort

1

Standarderweiterung ist autodoc. Napoleon Erweiterung unterstützt Google- und NumPy-Stil Docstrings.

+0

Napoleon unterstützt NumPy-artige Docstrings, aber für das, was ich gesehen habe, erwartet es einen Rückgabetyp im Docstring, richtig? (was ich gerne vermeiden würde) – Peque

+0

Nein, [Sphinx kann den Rückgabetyp (http://www.sphinx-doc.org/en/stable/ext/napoleon.html#type-annotations) aus Anmerkungen ableiten. – phd

+1

Vielleicht kann es, aber beim Generieren der Dokumentation sehe ich immer noch ein leeres "Rückgabetyp" -Feld bei der Verwendung von NumPy Docstrings. Auch Parameter und Rückgabetypen werden in der Dokumentation nur in der Funktion fingerprint, nicht in der eigentlichen Parameterbeschreibung und der Rückgabebeschreibung angezeigt. Haben Sie versucht, selbst zu sehen, ob Sie die erwartete Ausgabe erhalten? – Peque

Verwandte Themen