在另一个文档字符串中包含一个文档字符串

Including a docstring in another docstring

问题:我想在另一个文档字符串中使用一个文档字符串。

假设我有以下片段:

def window(dimensions: tuple):
    '''
    Function to create an app window and return it

    PARAMETERS
    ----------
    dimensions : tuple
        The width and height of the window to create

    RETURNS
    -------
    display.Window
        Class to implement a screen           # Make this equal to Window.__doc__ 
    '''
    class Window:
        '''
        Class to implement a screen
        '''
        def __init__(self, dimensions: tuple):
            pass
    return Window(dimensions)

我想自动设置 window 的文档字符串以包含 Window

的文档字符串

我了解到您可以手动设置文档字符串,如下所示:

window.__doc__ = "".join((window.__doc__, Window.__doc__))

但是只有调用函数的时候才会执行

此外,我可以使用装饰器,但是有没有更简单直观的方法来做到这一点?

奖励:有没有办法确定我可以在文档字符串中的确切位置包含另一个?

编辑: 所以,看起来这个问题有一个重复的建议,但是因为我特地询问没有装饰器,这确实让我的问题 有点 不同。此外,我在 window 中使用嵌套 class 意味着任何更改 __doc__:

    的尝试
  1. inside of window: 在调用函数之前不会发生。
  2. window 之外:不会 运行 因为 Window 是嵌套的。
因此,就目前情况而言,这排除了这两种方法。

但答案当然必须是其中之一。所以答案是重复的,而不是问题。 :P

因此,我不得不重构我的代码。见下文。

感谢 @aparpara,我找到了那个答案(我在网上搜索时没有出现),它让我意识到(可能?)没有解决我的特定问题的方法。

因此,我必须删除嵌套的 class 才能在函数外访问它。

这是最终版本。

# module display_module.py

class Window:
    '''
    Class to implement pygame's screen
    '''
    def __init__(self, dimensions: tuple):
        pass

def window(dimensions: tuple):
    '''
    Function to create an app window and return it

    PARAMETERS
    ----------
    dimensions : tuple
        The width and height of the window to create

    RETURNS
    -------
    display.Window
        {0}
    '''
    return Window(dimensions)

window.__doc__ = window.__doc__.format(Window.__doc__.strip())

仍然对旧问题有任何答案!