2013-04-12 6 views
16

スフィンクスを使用して例外を文書化する方法を理解できないようです。スフィンクスを使用して例外を文書化する方法

私は次のことを試してみた:

def some_funct(): 
    """ 
    :raises: ExceptionType: Some multi-line 
     exception description. 
    """ 


def some_funct(): 
    """ 
    :raises: ExceptionType, Some multi-line 
     exception description. 
    """ 


def some_funct(): 
    """ 
    :raises ExceptionType: Some multi-line 
     exception description. 
    """ 


def some_funct(): 
    """ 
    :raises: 
     ExceptionType: Some multi-line 
      exception description. 
    """ 

スフィンクスは言って続けて「フィールドリストが空白行せずに終了し、予想外のインデント解除。」では、メッセージを取り除くにはどうしたらよいでしょうか、複数行のドキュメントで複数の例外を文書化する適切な方法は何ですか?

答えて

19

に例外名の前に:を忘れてあなたは、行の継続のためにバックスラッシュを使用することができます。

def some_funct(): 
    """ 
    :raises ExceptionType: Some multi-line \ 
     exception description. 
    """ 

更新:

インデントではなく、エスケープの動作しているようです改行:

def some_funct(): 
    """ 
    :raises ExceptionType: Some multi-line 
     exception description. 
    """ 
+0

私は構文を少し編集しました.Sphinxはそれをもって最良の結果を出すようです。バックスラッシュがかなりハックしているような気分にはならない。 – siebz0r

+0

バックスラッシュはもう必要ないと思われます。私はそれに応じて答えを更新しました。 – siebz0r

+0

@ siebz0r:バックスラッシュは厄介なハックです。たとえば、ヘルプ(some_funct)で醜いことになります。すべての場合にうまく動作しません。 – lpapp

0

これは私に何か良いものを与える。

あなたは

def some_funct(): 
    """ 
    :raise: 
     :IOException: a probleme occured 
         and it can't be passed 
    """ 
+0

があり、スフィンクスはインデント不満を停止し、出力はかなり良さそうに見えますが、例外名だそれを失いますケーシング。例えば'IOException'は' IoException'になります。 – siebz0r

関連する問題