###
3 DocTestFinder オブジェクト

クラス `DocTestFinder`( | [verbose][, parser][, recurse][, exclude_empty])

  与えられたオブジェクトについて、その docstring か、そのオブジェクトに 入っているオブジェクトの docstring から`DocTest` を抽出する処理 クラスです。 現在のところ、モジュール、関数、クラス、メソッド、静的メソッド、 クラスメソッド、プロパティから`DocTest` を抽出できます。

  オプション引数 verbose を使うと、抽出処理の対象となるオブジェクト を表示できます。デフォルトは `False` (出力をおこなわない) です。

  オプション引数 parser には、 docstring から `DocTest` を 抽出するのに使う`DocTestParser` オブジェクト (またはその代替となるオブジェクト) を指定します。

  オプション引数 recurse が偽の場合、`DocTestFinder.find()` は与えられたオブジェクトだけを調べ、そのオブジェクトに入っている他の オブジェクトを調べません。

  オプション引数 exclude_empty が偽の場合、`DocTestFinder.find()` は空の docstring を持つオブジェクトもテスト対象に含めます。

  バージョン 2.4 で 新たに追加 された仕様です。

`DocTestFinder` では以下のメソッドを定義しています:

`find`( | obj[, name][, module][, globs][, extraglobs])

  obj または obj 内に入っているオブジェクトの docstring 中で 定義されている`DocTest` のリストを返します。

  オプション引数 name には、オブジェクトの名前を指定します。 この名前は、関数が返す `DocTest` の名前になります。 name を指定しない場合、`obj.__name__` を使います。

  オプションのパラメタ module は、指定したオブジェクトを 収めているモジュールを指定します。module を指定しないか、 `None` を指定した場合には、正しいモジュールを自動的に 決定しようと試みます。オブジェクトのモジュールは以下のような役割を 果たします:

  - globs を指定していない場合、オブジェクトのモジュールは デフォルトの名前空間になります。
  - 他のモジュールから import されたオブジェクトに対して `DocTestFinder` が`DocTest` を抽出するのを避ける ために使います (module 由来でないオブジェクトを無視します)。
  - オブジェクトの入っているファイル名を調べるために使います。
  - オブジェクトがファイル内の何行目にあるかを調べる手助けにします。

  module が `False` の場合には、モジュールの検索を試みません。 これは正確さを欠くような使い方で、通常 doctest 自体のテストにしか つかいません。 module が`False` の場合、 またはmodule が`None` で自動的に的確なモジュールを見つけ出せない場合には、全てのオブジェクトは `(non-existent)` モジュールに属するとみなされ、そのオブジェクト内の 全てのオブジェクトに対して (再帰的に) doctest の検索をおこないます。

  各`DocTest` のグローバル変数は、globs とextraglobs を合わせたもの (extraglobs 内のバインドがglobs 内の バインドを上書きする) になります。各々の `DocTest` に対して、 グローバル変数を表す辞書の新たな浅いコピーを生成します。 globs を指定しない場合に使われるのデフォルト値は、 モジュールを指定していればそのモジュールの __dict__ になり、 指定していなければ`{}` になります。extraglobs を指定しない場合、 デフォルトの値は`{}` になります。