我有一个python数据类,其中包含不希望被持久化/保存/序列化的字段(pickle.dump()
/ json.dump()
/ etc也排除在外)。
最好的解释是与Java transient
类似,这是因为我可以将类成员标记为transient
,并且该类成员将在没有任何附加样板代码的情况下从该类对象的任何持久性或序列化中排除。
我发现了类似的问题:Can I mark variables as transient so they won't be pickled?,但它只能解决泡菜。
有pythonic的方法吗?
谢谢!
最佳答案
在Python中这不是一件简单的事情,因为一开始就没有一致的序列化方法。正如您所链接的问题所演示的,pickle使用__getstate__
,但是JSON和yaml序列化器并不一定。您将需要重写执行实际序列化的任何代码。