0

私はbpythonを使い始めたばかりです。主な理由は、bpythonがオフィスのナブに大いに役立つと思うからです。bpythonでは、入力時にヘルプテキストが継続的に表示されます。例えば

>>> zip(
┌────────────────────────────────────────────────── ───────────────────────┐
│zip:(seq1 [、seq2 [...]])│
│zip(seq1 [、seq2 [...]])-> [(seq1 [0]、seq2 [0] ...)、(...)]│
││
│タプルのリストを返します。各タプルにはi番目の要素が含まれています│
│各引数シーケンスから。返されたリストは切り捨てられます│
│最短の引数シーケンスの長さまでの長さ。│
└────────────────────────────────────────────────── ───────────────────────┘

これは、あまり教育を受けていない人(そして私のような初心者でも)に最適です。ただし、カスタムビルドされた関数には何も表示されません。docstringを表示しているだけかもしれないと思ったので、関数にdocstringを追加しました。何も変わっていません。ここに表示されている内容と、関数に追加する方法を誰かに説明してもらえますか?

編集:それはいくつかの奇妙な継承の問題であるに違いありません。これは、Djangoのカスタムマネージャーで行われています。

クラスPublicationManager(models.Manager):
    "" "blarg" ""
    def funct(arg):
        "" "foo" ""
        パス

クラスPublication(models.Model):
    オブジェクト=PublicationManager()

入力PublicationManager.funct(するとdocstringが表示されますが、表示されPublication.objects.funct(ません。ナブは自分でそれを理解する必要があると思います。

4

2 に答える 2

3

関数の最初の行としてドキュメント文字列を追加します。

def funct():
    "This function is self-documenting"
    pass

複数行にまたがる場合は、三重引用符を使用してください。

def funct():
    """
     This function doesn't expect arguments
     and returns zero.
    """
    return 0

replのヘルプを取得するには、help()を使用します。

>>> help(funct)

または、プログラムでdocstringを取得するには、次を使用します__doc__

>>> print funct.__doc__
This function doesn't expect arguments
and returns zero.
>>> 
于 2011-03-25T18:57:43.137 に答える
0

関数行の後に追加します。

def myFunc():
    """You Doc String Here
    (even multiline)"""
    pass

クラスについても同じです。

class MyClass():
    """Class Documentation"""
    def __init__(self):
        """Function Documentation"""
        pass

ただし、モジュールの場合は、ファイルの先頭にドキュメントを記述します。

#File: mymodule.py
"""Module Documentation"""

class Classes()...
def functions()...

これをメインファイルにインポートすると、次のようになります。

import mymodule.py
print mymodule.__doc__
于 2011-03-25T18:54:28.050 に答える