Мой код имеет следующую структуру каталогов:
apkg/
__init__.py
amod.py
bmod.py
cmod.py
Где apkg/__init__.py
содержит:
"""
effusive top-level documentation
"""
from apkg.amod import foo
from apkg.bmod import bar
from apkg.cmod import baz
И из python repl я могу успешно вызывать foo
, bar
и baz
, не зная, в каком подмодуле они определены:
>>> import apkg
>>> apkg.foo()
"foo"
И получите их документацию:
>>> help(apkg.foo)
Help on function foo in module apkg.amod:
foo()
Returns "foo"
Но они не рекламируются в документации apkg
:
>>> help(apkg)
Help on package apkg:
NAME
apkg - effusive top-level documentation
PACKAGE CONTENTS
amod
bmod
cmod
FILE
/path/to/apkg/__init__.py
Это имеет смысл по умолчанию, поскольку я вряд ли захочу включать документацию defaultdict
, просто выполнив from collections import defaultdict
в apkg/__init__.py
.
Есть ли способ изменить это значение по умолчанию, чтобы я мог указать синтаксическому анализатору документации перечислить foo
, bar
и baz
в разделе FUNCTIONS для help(apkg)
?
1 ответ
Согласно этому ответу:
Инструменты документации
Инструменты документирования и автозаполнения кода могут (на самом деле, должны) также проверять
__all__
, чтобы определить, какие имена показывать как доступные из модуля.
Это так же просто, как добавить одну строку к apkg/__init__.py
__all__ = ['foo', 'bar', 'baz']
Похожие вопросы
Связанные вопросы
Новые вопросы
python
Python — это мультипарадигмальный многоцелевой язык программирования с динамической типизацией. Он предназначен для быстрого изучения, понимания и использования, а также обеспечивает чистый и унифицированный синтаксис. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Если у вас есть вопросы о версии Python, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas, NumPy) укажите это в тегах.