0

経由

"""
  Function: myfunc
  Parameters:
    a - First parameter
    b - First parameter
"""

関数を文書化すると、クラスの概要にリストされます。属性で同様のことを行うにはどうすればよいですか? 私はPythonでそれらを宣言していないので、次のようなことを望んでいました

""" ----------------------------------------------------------------------------
  Attributes:
  first - First attribute of the class
  second - Second one
"""

それはまったく機能していません...

4

2 に答える 2

1

クラス属性を明示的に宣言しない場合-コンストラクターで値を割り当てるだけだと思います-クラスコメントと一緒にコメントを入れることができます:

"""
  Class: MyClass
  Describe the class here.

  Attributes:
    attr1 - First attribute of the class
    attr2 - Second one
"""
class MyClass:

    def __init__(self, arg1):
        self.attr1 = arg1
        self.attr2 = "attr2"

メソッドについても同じことができます。これは最も簡単な方法ですが、インデックスに個別にリストされたクラス メンバーを取得できません。これは大きな欠点です。ドキュメント内のすべてのクラス メンバー参照にプレフィックスを指定すると、次のように動作します。

"""
  Class: MyClass
  Describe the class here.

  Attribute: attr1
  First attribute of the class

  Attribute: attr2
  Second one
"""
class MyClass:

    # Constructor: __init__
    # Describe the constructor.
    #
    # Parameters:
    #   arg1 - The first argument.
    def __init__(self, arg1):
        self.attr1 = arg1
        self.attr2 = "attr2"

    # Method: method1
    # Describe the method here.
    def method1(self):
        print("method1")

とにかく、コメントが通常実装の直前に置かれるメソッドでは、コメントの接頭辞は問題になりません。コメントの自然な場所を作るために属性を明示的に宣言しないと、クラスのコメントが少し乱雑になります。コメントをさらに分割することもできます。行コメントとブロック コメントを混在させることができることに注意してください。

"""2 つの注意事項: で始まる行コメントだけでなく、 で区切られたブロック コメントを使用する場合は、NaturalDocs プロジェクト ディレクトリに#次の行を追加する必要があります。Languages.txt

Alter Language: Python

   Block Comment: """ """

どうやら、デフォルトで NaturalDocs によって認識されるAttributeのではなく、キーワードが気に入っているようです。Property以下をTopics.txtNaturalDocs プロジェクト ディレクトリに追加して、それも認識されるようにします。

Alter Topic Type: Property

   Add Keywords:
      attribute, attributes

--- フェルダ

于 2012-04-09T10:33:39.493 に答える
0

ここで説明されているdocstringを確認してください:http: //epydoc.sourceforge.net/manual-docstring.html

変数は、コメントdocstringを使用して文書化することもできます。変数の割り当ての直前に、行が特別なマーカー「#:」で始まるコメントが続く場合、または同じ行の後にそのようなコメントが続く場合、その変数のdocstringとして扱われます。

#: docstring for x
x = 22
x = 22 #: docstring for x
于 2012-04-04T11:30:15.877 に答える