5

十分なドキュメントが不足しているサードパーティのライブラリ(パッケージとモジュール)を使用していることがよくあります。したがって、ソースコードの調査は不可欠になりますが、やや面倒な作業になることもあります。私は(誰もが推測するように)開始するためdir()に関数を使用し、最近モジュールhelp()を使用し始めました。inspect文書化が不十分なコードに飛び込むために使用する「方法」と、その効率を高める方法を知りたいと思います。感謝します。

4

2 に答える 2

5

この種のタスクにはIPythonが不可欠だと思います。(?show docstring)と??(show source)の魔法のコマンドは、IPythonの優れた補完システムとライブオブジェクトのイントロスペクションと相まって、私にとって本当に違いを生みます。

セッションの例:

In [1]: import sphinx.writers <TAB>
# see available modules and packages - narrow down

In [1]: import shpinx.writers.manpage as manpage
In [2]: manpage.<TAB>
# list and complete on the module's contents 

In [3]: manpage.Writer?
# nicely formatted docstring follows

In [4]: manpage.Writer??
# nicely formatted source code follows

In [5]: %edit manpage
# open module in editor
# it really helps if you use something like ctags at this point

In [6]: %edit manpage.Writer
# open module in editor - jump to class Writer

残念ながら、すべてのコードをこの方法で検査できるわけではありません。モジュールをラップせずにモジュールで実行するif __name__ == '__main__'プロジェクトや、魔法に大きく依存するプロジェクトを考えてみてください( shが思い浮かびます)。

于 2012-09-20T09:15:02.103 に答える
2

http://pycallgraph.slowchop.com/またはdoxygenを使用してcallgraphを作成したいと思います。

実際、ASTモジュールやその他のモジュールを使用すると、比較的痛みのない静的分析が可能になります。もっと欲しいのは、どういうわけか動的分析を実行することです(「func1」と呼ばれるものの値は変化する可能性があり、呼び出しは完全に異なる可能性があるため)。

于 2012-09-20T09:44:40.177 に答える