3

copyドキュメントから:

クラスは、ピクルスを制御するために使用するのと同じインターフェースを使用して、コピーを制御できます。

[...]

クラスが独自のコピー実装を定義するために、特別なメソッド__copy__()__deepcopy__()

それで、それはどれですか?__setstate__()そしてそれはピクルスにするときに使用されます__getstate__()、または?__copy__()__deepcopy__()

4

2 に答える 2

7

それは次のように機能します:クラスが定義する場合__copy__、それは目的のために優先されcopy.copyます(そして同様に目的のため__deepcopy__に優先されcopy.deepcopyます)。これらの非常に特殊な特別なメソッドが定義されていない場合は、ピクルスとアンピクルと同じメカニズムがテストされます(これには、およびが含まれますが、これらに限定されません__getstate____setstate__これについては、私の著書「Python in aNutshell」で詳しく説明しています( @ilfaraoneは部分的にしか引用していません)。

于 2009-09-09T03:33:51.367 に答える
1

__setstate__()および__getstate__()

コピードキュメントには、同じインターフェイスを使用できると記載されていますが、必ずしもそうしているとは限りません。

一言で言えばPythonからのこの抜粋、またはPythonメーリングリストのこの説明を参照してください。

于 2009-09-08T22:32:50.320 に答える