前のトピックへ

11.1. pickle — Python オブジェクトの整列化

次のトピックへ

11.4. shelve — Python オブジェクトの永続化

このページ

11.3. copy_regpickle サポート関数を登録する

ノート

copy_reg モジュールはPython 3.0で copyreg に変更されました。 2to3 ツールが自動的にソースコードの import を変換します。

copy_reg モジュールは picklecPickle モジュールに対するサポートを提供します。その上、 copy モジュールは将来これをつかう可能性が高いです。クラスでないオブジェクトコンストラクタについての設定情報を提供します。このようなコンストラクタはファクトリ関数か、またはクラスインスタンスでしょう。

copy_reg.constructor(object)

object を有効なコンストラクタであると宣言します。 object が呼び出し可能でなければ(そして、それゆえコンストラクタとして有効でないならば)、 TypeError を発生します。

copy_reg.pickle(type, function[, constructor])

function が型 type のオブジェクトに対する”リダクション”関数として使うことを宣言します。 type は”標準的な”クラスオブジェクトであってはいけません。(標準的なクラスは異なった扱われ方をします。詳細は、 pickle モジュールのドキュメンテーションを参照してください。) function は文字列または二ないし三つの要素を含むタプルです。

オプションの constructor パラメータが与えられた場合は、pickle化時に function が返した引数のタプルとともによびだされたときにオブジェクトを再構築するために使われ得る呼び出し可能オブジェクトです。 object がクラスであるか、または constructor が呼び出し可能でない場合に、 TypeError を発生します。

functionconstructor の求められるインターフェイスについての詳細は、 pickle モジュールを参照してください。