##
4.4.3 Differ オブジェクト

`Differ`オブジェクトによって抽出された差分は、最小単位の 差分を見ても問題なく抽出されます。反対に、最小の差分の場合にはこれとは 反対のように見えます。それらが、どこれも可能ときに同期するからです。 時折、思いがけなく100ページもの部分にマッチします。隣接するマッチ列の 同期するポイントを制限することで、より長い差異を算出する再帰的なコスト での、局所性の概念を制限します。

`Differ`は、以下のようなコンストラクタを持ちます。

class `Differ`( | [linejunk[, charjunk]])

  オプションのパラメータlinejunkとcharjunkはfilter関数の ために指定します（もしくは`None`を指定）。

  linejunk:ひとつの文字列引数を受け取れるべき関数です。 文字列がjunkのときにtrueを返します。デフォルトでは、`None` であり、どんな行であってもjunkとは見なされません。

  charjunk: この関数は（長さ1の）文字列を引数として受け取り、文字列が junkであるときにtrueを返します。デフォルトは`None`であり、どんな文字列も junkとは見なされません。

`Differ`オブジェクトは、以下のひとつのメソッドによって使われます （違いを生成します）。

`compare`( | a, b)

  文字列からなる2つのシーケンスを比較し、差異（を表す文字列からなる シーケンス）を生成します。

  Each sequence must contain individual single-line strings ending with newlines. Such sequences can be obtained from the `readlines()` method of file-like objects. The delta generated also consists of newline-terminated strings, ready to be printed as-is via the `writelines()` method of a file-like object. それぞれのシーケンスは、改行文字によって終了する、独立したひと連なりの 文字列でなければなりません。そのようなシーケンスは、ファイル形式オブジェクトの `readline()`メソッドによって得ることができます。（得られる）差異は 改行文字で終了する文字列として得られ、ファイル形式オブジェクトの`writeline()` メソッドによって出力できる形になっています。