python 自定义序列化器

@Serialization 是一个自定义装饰器,通常用于序列化 Python 对象。 使用 @Serialization 装饰器可以将一个类转换为可序列化的对象,这样就可以将其存储到文件或通过网络传输。 下面是一个使用 @Serialization 装饰器的示例:

import json
def Serialization(cls):
    def serialize(instance):
        return json.dumps(instance.__dict__)

    def deserialize(instance, data):
        instance.__dict__.update(json.loads(data))

    cls.serialize = serialize
    cls.deserialize = deserialize

    return cls


@Serialization
class Person:
    def __init__(self, name=None, age=None):
        self.name = name
        self.age = age

person = Person("Alice")
serialized_person = person.serialize()  # 序列化 Person 对象
deserialized_person = Person()  # 创建一个空的 Person 对象
deserialized_person.deserialize(serialized_person)  # 反序列化 Person 对象
print(deserialized_person.name, deserialized_person.age)
print(serialized_person)

 

 在上述示例中,我们首先定义了一个名为 Serialization 的装饰器,它接收一个类作为其参数, 并向该类添加 serialize deserialize 方法。然后,我们使用 @Serialization 装饰器来装饰 Person 类, 使其能够被序列化和反序列化。最后,我们创建了一个 Person 实例,并对其进行了序列化和反序列化,以演示该装饰器的用法。

posted @ 2023-11-03 14:16  公子Learningcarer  阅读(74)  评论(0编辑  收藏  举报