#
2.2 非必須組み込み関数 (Non-essential Built-in Functions)

いくつかの組み込み関数は、現代的な Python プログラミングを行う場合には、 必ずしも学習したり、知っていたり、使ったりする必要がなくなりました。 こうした関数は古いバージョンの Python 向け書かれたプログラムとの互換性を 維持するだけの目的で残されています。

Python のプログラマ、教官、学生、そして本の著者は、こうした関数を飛ばしても かまわず、その際に何か重要なことを忘れていると思う必要もありません。

`apply`( | function, args[, keywords])

  引数 function は呼び出しができるオブジェクト (ユーザ定義 および組み込みの関数またはメソッド、またはクラスオブジェクト) でなければなりません。args は配列型でなくてはなりません。 function は引数リスト args を使って呼び出されます; 引数の数はタプルの長さになります。オプションの引数 keywords を与える場合、 keywords は文字列のキーを持つ辞書で なければなりません。これは引数リストの最後に追加されるキーワード 引数です。 `apply()` の呼び出しは、単なる `function(args)` の呼び出しとは異なります。 というのは、`apply()` の場合、引数は常に一つだから です。`apply()` は `function(*args, **keywords)` を 使うのと等価です。 上のような ``拡張された関数呼び出し構文'' は `apply()` と全く等価なので、必ずしも `apply()` を使う必要はありません。
  リリース 2.3 以降で撤廃された仕様です。 上で述べられたような拡張呼び出し構文を使って ください。

`buffer`( | object[, offset[, size]])

  引数 object を参照する新たなバッファオブジェクトが生成されます。 引数 object は (文字列、アレイ、バッファといった) バッファ 呼び出しインタフェースをサポートするオブジェクトでなければなりません。 返されるバッファオブジェクトは object の先頭 (または offset) からのスライスになります。スライスの末端は object の末端まで (または引数 size で与えられた長さになるまで) です。

`coerce`( | x, y)

  二つの数値型の引数を共通の型に変換して、変換後の値からなるタプルを 返します。変換に使われる規則は算術演算における規則と同じです。 変換を行えない場合には`TypeError` を送出します。

`intern`( | string)

  string を ``隔離'' された文字列のテーブルに入力し、隔離された 文字列を返します - この文字列は string 自体かコピーです。 隔離された文字列は辞書検索のパフォーマンスを少しだけ向上させるのに 有効です - 辞書中のキーが隔離されており、検索するキーが隔離されて いる場合、(ハッシュ化後の) キーの比較は文字列の比較ではなくポインタ の比較で行うことができるからです。通常、Python プログラム内で 利用されている名前は自動的に隔離され、モジュール、クラス、 またはインスタンス属性を保持するための辞書は隔離されたキーを持って います。 バージョン2.3 以降で変更された 仕様: 隔離された文字列の有効期限は (Python 2.2 またはそれ以前は永続的でしたが) 永続的ではなくなりました; `intern()` の恩恵を受けるためには、`intern()` の返す値に対する参照を保持しなければなりません