[Python] pickle でCODEオブジェクトをシリアライズ (yat another way)
from new import * import pickle, marshal, struct CODE='C' # opcode(CODE)が重複していないか確認する if (not pickle.Pickler.dispatch.has_key(code) and not pickle.Unpickler.dispatch.has_key(CODE)): def save_code(self, obj): """保存用メソッド""" assert type(obj) == code, "argument must be code object" tmp = marshal.dumps(obj) self.write(CODE) self.write(struct.pack("
注意: CモジュールのcPickleの方では、同じ方法で拡張できない。copy_reg辺りを参照
ユーザー定義クラス等、他のオブジェクトのシリアライズについての正式な拡張方法は、
マニュアルか PEP307 を参照。