copyreg - ピクルスサポート関数を登録する

copyregモジュールは、酸洗いまたはコピー中に特定のオブジェクトを酸洗いすることによって使用される関数を定義します。このモジュールは、クラスではないオブジェクトコンストラクタ(ファクトリ関数やクラスインスタンスなど)に関する設定情報を提供します。 copyreg.constructor(オブジェクト) この関数は、オブジェクトを有効なコンストラクタとして宣言するために使用されます。呼び出し可能でない場合、オブジェクトは有効なコンストラクタとは見なされません。オブジェクトが呼び出し不可能な場合、この関数はTypeErrorを送出します。 copyreg.pickle(type、function、constructor = None) これは、type型のオブジェクトに対するfunctionを“ reduction”関数として宣言するために使用されます。 functionは文字列か2つか3つの要素を含むTupleを返すべきです。 コンストラクターパラメーターはオプションです。これは、酸洗い時に関数によって返される引数のTupleで呼び出されたときにオブジェクトを再構築するために使用できる呼び出し可能オブジェクトです。 objectがクラスであるかコンストラクタが呼び出せない場合はTypeErrorが送出されます。 例:

🐶Pythonコードの例を示すで

# Python 3 program to illustrate  
use of copyreg module
import copyreg, copy, pickle
class C(object):
    def __init__(self, a):
        self.a = a

def pickle_c(c):
    print("pickling a C instance...")
    return C, (c.a, )

copyreg.pickle(C, pickle_c)
c = C(1)
d = copy.copy(c)
print (d)

p = pickle.dumps(c)
print (p)

動画で確認

🐶 🐍

Last Updated: 5/25/2019, 12:38:18 PM