Python パッケージ内にいくつかのモジュールがあります。
# my_package contents
__init__.py
module1.py
module2.py
私の 内で、__init__.py
これらのモジュールをインポートして、ユーザーがパッケージをインポートするとアクセスできるようにします。
# __init__.py
import module1
import module2
私の質問は、これらの各モジュール内で定義された各関数のドキュメント文字列にプログラムでアクセスするにはどうすればよいですか? 私は他の人がこの形式を使用しているのを見てきました:
getattr(module, key). __doc__
しかし、私はそれを私のために働かせることができません。何か案は?
編集: もう少し背景を説明します... ドキュメントのコンテンツとして使用する目的で、Python パッケージからコンテンツ (重要なものの 1 つはドキュメント文字列です) を抽出しようとしています。私の上司は、私たちがフィードしようとしているものをすでにセットアップしています。
package.module.function docstring
理想的には、結果を出したい
EDIT2:現在機能していないものは次のとおりです。
#my package is named 'tpp'
import tpp
for script in dir(tpp):
if not "__" in script: #not a builtin...
docstrings1 = getattr( tpp, script).__doc__
docstrings2 = " ".join(docstrings1.split())#clean out any newline chars
print script, docstrings
EDIT3: docstring がどこにあり、どのように整理されているかを把握するには:
import inspect
import tpp
inspect.getdoc(tpp)
#returns None
inspect.getdoc(tpp.module1)
#returns None
inspect.getdoc(tpp.module1.function1)
#'DOCSTRING TEXT FOUND!'
**最終的には、['module1', 'function1', 'DOCSTRING TEXT FOUND!'] のようなリストを取得したいと考えています。