2017-05-30 29 views
7

:Python: gibi bir işlevi olması Docstringler ve yazın ek açıklamaları

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

Ben aşağıdaki gibi bir NumPy benzeri docstring'ini kullanmak istiyorum:

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

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

Not olun:

  • Parametre türünü tekrar belirtmek istemiyorum.
  • Dönüş türünü tekrar belirtmek istemiyorum.
  • Bu uzantının açıklamalı yazı tiplerini okuyabilmesini (ve oluşturulan HTML belgelerinde yazmasını) istiyorum.

Bunu destekleyen bir Sphinx uzantısı var mı? Başka bir sözdizimi tavsiye eder misiniz?

+0

Neden reddedildiğini göremiyorum. Bunu bir araç sormak gibi okuyabiliyordunuz, ama aynı zamanda soruyu "Sfenks belgelerine sahip olduğumdan, bunu belgelere nasıl ekleyebilirim?" Şeklinde yanıtlayabilirsiniz. –

+0

mypy'nin argüman ve geri dönüş türlerini belirtmenize izin verdiğini ve türün tanımladığınızdan farklı olması halinde çalışma süresi boyunca istisnalar veya uyarılar oluşturabileceğini biliyorum. Bu bilgi yardımcı olup olmadığını bilmiyorum. – Rosh

cevap

1

Standart uzantı autodoc'dur. Napoleon uzantısı Google ve NumPy tarzı doküman şeritlerini destekler.

+0

Napoleon, NumPy stili docstrings'i destekliyor, ancak gördüklerim için, belgedeki bir dönüş türünü bekler, değil mi? (Önlemek istediğim bir şey var) – Peque

+0

Hayır, [Sphinx, döndürme türünden çıkarım yapabilir] (http://www.sphinx-doc.org/en/stable/ext/napoleon.html#type-annotations) ek açıklamalardan. – phd

+1

Belki yapabilir, ancak belgeleri oluştururken hala NumPy docstrings kullanırken boş bir "Return type" alanı görüyorum. Ayrıca, parametreler ve geri dönüş türleri dokümantasyonda sadece gerçek parmak izinde değil, geri dönüş açıklamasında değil, işlev parmak izinde görüntülenir. Beklenen çıktıyı alıp almadığınızı görmek için kendinizi denediniz mi? – Peque