0

同じ関数 A を呼び出すいくつかの関数 (たとえば、B1、B2、B3 など...) があるとします。B1、B2、B3 のドキュメント文字列に、関数 A で使用されるパラメーターを説明するいくつかのテキストを入れたいとします。関数Aのdocstringですでに説明されています。しかし、AのdocstringをB1、次にB2、次にB3にコピーしたくありません。後で関数Aのdocstringを変更すると、B1、B2、B3を変更する必要があります... 繰り返しますが、B1 のドキュメント文字列の一部を A のドキュメント文字列にリンクする方法があるのではないかと思います。これにより、A のドキュメント文字列が更新されると、B1 の対応する部分も更新されます。このようにして、ユーザーは、わざわざ A の docstring をチェックすることなく、ヘルプ情報として関数 B1 の docstring を直接参照できます (実際、A のパラメーターはすべて kwargs です)。簡単な例は次のようになります。

def A():
    '''
    I am doctring for function A
    '''
    pass

def B1():
    '''
    I am doctring for function B1,

    followed by the same docstring as function A, which is:

    ** I would like someway I can put the docstring of A here**
    '''
    pass

助けてくれてありがとう、または他のリンクを紹介してくれました。グーグルで検索してみましたが、対象となる情報は見つかりませんでした。

4

1 に答える 1

3

これを行うデコレータを書くことができます:

def append_doc_of(fun):
    def decorator(f):
        f.__doc__ += fun.__doc__
        return f

    return decorator


def A():
    '''
    I am doctring for function A
    '''
    pass


@append_doc_of(A)
def B1():
    '''
    I am doctring for function B1,

    followed by the same docstring as function A, which is:

    '''
    pass
于 2013-01-03T22:28:07.750 に答える