目次

前のトピックへ

32.8. tabnanny — あいまいなインデントの検出

次のトピックへ

32.10. py_compile — Python ソースファイルのコンパイル

このページ

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

この pyclbr モジュールはモジュールで定義されたクラス、メソッド、およびトップレベルの関数について、限られた量の情報を定義するのに使われます。 このクラスによって提供される情報は、伝統的な 3 ペイン形式のクラスブラウザーを実装するのに十分なだけの量になります。 情報はモジュールのインポートによらず、ソースコードから抽出します。このため、このモジュールは信用できないソースコードに対して利用しても安全です。 この制限から、多くの標準モジュールやオプションの拡張モジュールを含む、Python で実装されていないモジュールに対して利用することはできません。

pyclbr.readmodule(module[, path=None])

モジュールを読み込み、辞書マッピングクラスを返し、クラス記述オブジェクトに名前をつけます。 パラメタ module はモジュール名を表す文字列でなくてはなりません; パッケージ内のモジュール名でもかまいません。 path パラメタはシーケンス型でなくてはならず、モジュールのソースコードがある場所を特定する際に sys.path の値に補完する形で使われます。

pyclbr.readmodule_ex(module[, path=None])

readmodule() に似ていますが、返される辞書は、クラス名からクラス記述オブジェクトへの対応付けに加えて、トップレベル関数から関数記述オブジェクトへの対応付けも行っています。さらに、読み出し対象のモジュールがパッケージの場合、返される辞書はキー '__path__' を持ち、その値はパッケージの検索パスが入ったリストになります。

32.9.1. Class オブジェクト

Class オブジェクトは、 readmodule()readmodule_ex() が返す辞書の値として使われており、以下のデータメンバを提供しています:

Class.module

クラス記述オブジェクトが記述している対象のクラスを定義しているモジュールの名前です。

Class.name

クラスの名前です。

Class.super

記述しようとしている対象クラスの、直接の基底クラス群について記述している Class オブジェクトのリストです。 スーパクラスとして挙げられているが readmodule() が見つけられなかったクラスは、 Class オブジェクトではなくクラス名の文字列としてリストに挙げられます。

Class.methods

メソッド名を行番号に対応付ける辞書です。

Class.file

クラスを定義している class 文が入っているファイルの名前です。

Class.lineno

file で指定されたファイルにおける class 文の行番号です。

32.9.2. Function オブジェクト

Function オブジェクトは、 readmodule_ex() が返す辞書内でキーに対応する値として使われており、以下のデータメンバを提供しています:

Function.module

関数記述オブジェクトが記述している対象の関数を定義しているモジュールの名前です。

Function.name

関数の名前です。

Function.file

関数を定義してる def 文が入っているファイルの名前です。

Function.lineno

file で指定されたファイルにおける def 文の行番号です。