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
ステートメントの行番号。