Python заставляет функцию класса распечатать строку документации вызываемой функции

Есть ли простой способ заставить методы класса возвращать строку документации функции, которую я написал в другом модуле, когда вызывается help(my_classfunction)?


person Steven    schedule 05.06.2020    source источник
comment
Можете ли вы привести пример кода, что вы пытаетесь сделать или каким должно быть ожидаемое поведение?   -  person Christian    schedule 07.06.2020
comment
Строка документации доступна через my_classfunction.__doc__. help в основном форматирует строку документа (и для таких вещей, как классы, также собирает связанные строки документа).   -  person chepner    schedule 07.06.2020
comment
@Christian Я написал модуль с функциями, доступ к которым будет осуществляться с помощью методов класса. Я написал это так, так как модуль должен быть переносимым. В данном случае у меня есть класс, где функции в модуле имеют функционал и вызываются методами класса (они просто интерфейс с модулем). Однако конечный пользователь должен взаимодействовать только с классом, поэтому я хотел бы, чтобы пользователь мог выполнять help(my_classfunction) или my_classfunction.__doc__ и фактически получать строку документации функции в модуле, а не метод класса. Это объясняет это немного лучше?   -  person Steven    schedule 07.06.2020
comment
@chepner да, я знаю об этом. По наивности, я попытался добавить в метод класса следующее, но это не сработало: my_classfunction.__doc__ = my_module.my_function.__doc__ после импорта модуля   -  person Steven    schedule 07.06.2020


Ответы (1)


Покопавшись немного глубже, я нашел связанный вопрос, который решил мою проблему. Оказалось, что мне пришлось использовать __func__ при настройке строки документации метода класса. self.my_classmethod.__func__.__doc__ = my_module.my_function.__doc__ устанавливает строку документации метода класса в строку документации функции, которую он вызывает.

person Steven    schedule 08.06.2020