Проблема: я хочу использовать одну строку документации в другой строке документа.
Предположим, у меня есть следующий фрагмент:
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
означает, что любая попытка изменить __doc__
:
- внутри
window
: не произойдет, пока не будет вызвана функция. - за пределами
window
: не будет работать, поскольку Window
является вложенным.
Таким образом, это исключает оба эти метода, как есть.
Но ответ, конечно, должен быть одним из них. Таким образом, ответ является дубликатом, а не вопросом. : P
Поэтому мне пришлось реструктурировать свой код. Смотри ниже.