def register(self, type, reduce_func):
"""Attach a reducer function to a given type in the dispatch table."""
if hasattr(pickle.Pickler, 'dispatch'):
# Python 2 pickler dispatching is not explicitly customizable.
# Let us use a closure to workaround this limitation.
def dispatcher(self, obj):
reduced = reduce_func(self, obj)
self.save_reduce(obj=obj, *reduced)
self.dispatch[type] = dispatcher
else:
self.dispatch_table[type] = lambda obj: reduce_func(self, obj)
评论列表
文章目录