32.9. pyclbr — Pythonクラスブラウザのサポート—Pythonドキュメント

提供:Dev Guides
< PythonPython/docs/2.7/library/pyclbr
移動先:案内検索

32.9。 pyclbr —Pythonクラスのブラウザのサポート

ソースコード: :source: `Lib / pyclbr.py`



pyclbr モジュールを使用して、モジュールで定義されているクラス、メソッド、および最上位関数に関するいくつかの限定された情報を判別できます。 提供される情報は、従来の3ペインクラスのブラウザを実装するのに十分です。 情報はモジュールをインポートするのではなくソースコードから抽出されるため、このモジュールは信頼できないコードで安全に使用できます。 この制限により、すべての標準およびオプションの拡張モジュールを含む、Pythonで実装されていないモジュールでこのモジュールを使用することはできません。

pyclbr.readmodule(module, path=None)
モジュールを読み取り、クラス名をクラス記述子オブジェクトにマッピングするディクショナリを返します。 パラメータ module は、文字列としてのモジュールの名前である必要があります。 パッケージ内のモジュールの名前である可能性があります。 path パラメーターはシーケンスである必要があり、モジュールのソースコードを見つけるために使用されるsys.pathの値を拡張するために使用されます。
pyclbr.readmodule_ex(module, path=None)
readmodule()と同様ですが、返されるディクショナリは、クラス名をクラス記述子オブジェクトにマッピングするだけでなく、最上位の関数名も関数記述子オブジェクトにマッピングします。 さらに、読み取られているモジュールがパッケージの場合、返されるディクショナリのキー'__path__'には、パッケージ検索パスを含むリストが値として含まれています。

32.9.1。 クラスオブジェクト

readmodule()および readmodule_ex()によって返されるディクショナリの値として使用されるClassオブジェクトは、次のデータ属性を提供します。

Class.module
クラス記述子によって記述されたクラスを定義するモジュールの名前。
Class.name
クラスの名前。
Class.super
記述されているクラスの直接の基本クラスを記述しているClassオブジェクトのリスト。 スーパークラスとして名前が付けられているが、 readmodule()で検出できないクラスは、Classオブジェクトではなく、クラス名の文字列としてリストされます。
Class.methods
メソッド名を行番号にマッピングする辞書。
Class.file
クラスを定義するclassステートメントを含むファイルの名前。
Class.lineno
file で指定されたファイル内のclassステートメントの行番号。


32.9.2。 関数オブジェクト

readmodule_ex()によって返されるディクショナリの値として使用されるFunctionオブジェクトは、次の属性を提供します。

Function.module
関数記述子によって記述された関数を定義するモジュールの名前。
Function.name
関数の名前。
Function.file
関数を定義するdefステートメントを含むファイルの名前。
Function.lineno
file で指定されたファイル内のdefステートメントの行番号。