Python: Ensuring my class gets pickled only with t

2019-05-11 02:35发布

I'm developing a class which can be meaningfully pickled only using protocol 2 (and upwards on Python 3.) When an older protocol is used, hard-to-trace bugs happen. I want to save the users of the class some debugging pain, so I want the class to immediately raise an exception if it's being pickled with a protocol of less than 2.

How can I do that?

标签: python pickle
1条回答
爷、活的狠高调
2楼-- · 2019-05-11 03:13

You can implement the __reduce_ex__() method on your class. It receives one parameter, which is the protocol version. Simply raise an exception if the version is not 2.

查看更多
登录 后发表回答