##
4.4.4 Differ の例

この例では2つのテキストを比較します。初めに、改行文字で終了する独立した 1行の連続した（ファイル形式オブジェクトの`readlines()`メソッドに よって得られるような）テキストを用意します。

    >>> text1 = '''  1. Beautiful is better than ugly.
    ...   2. Explicit is better than implicit.
    ...   3. Simple is better than complex.
    ...   4. Complex is better than complicated.
    ... '''.splitlines(1)
    >>> len(text1)
    4
    >>> text1[0][-1]
    '\n'
    >>> text2 = '''  1. Beautiful is better than ugly.
    ...   3.   Simple is better than complex.
    ...   4. Complicated is better than complex.
    ...   5. Flat is better than nested.
    ... '''.splitlines(1)

次にDifferオブジェクトをインスタンス化します。

    >>> d = Differ()

注意：`Differ`オブジェクトをインスタンス化するとき、 ``junk.''である列と文字をフィルタリングす関数を渡すことができます。 詳細は`Differ()`コンストラクタを参照してください。

最後に、2つを比較します。

    >>> result = list(d.compare(text1, text2))

`result`は文字列のリストなので、pretty-printしてみましょう。

    >>> from pprint import pprint
    >>> pprint(result)
    ['    1. Beautiful is better than ugly.\n',
     '-   2. Explicit is better than implicit.\n',
     '-   3. Simple is better than complex.\n',
     '+   3.   Simple is better than complex.\n',
     '?     ++                                \n',
     '-   4. Complex is better than complicated.\n',
     '?            ^                     ---- ^  \n',
     '+   4. Complicated is better than complex.\n',
     '?           ++++ ^                      ^  \n',
     '+   5. Flat is better than nested.\n']

これは、複数行の文字列として、次のように出力されます。

    >>> import sys
    >>> sys.stdout.writelines(result)
        1. Beautiful is better than ugly.
    -   2. Explicit is better than implicit.
    -   3. Simple is better than complex.
    +   3.   Simple is better than complex.
    ?     ++
    -   4. Complex is better than complicated.
    ?            ^                     ---- ^
    +   4. Complicated is better than complex.
    ?           ++++ ^                      ^
    +   5. Flat is better than nested.