[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 を参照。