Python: Ensuring my class gets pickled only with t

2019-05-11 02:31发布

问题:

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?

回答1:

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.



标签: python pickle