自定义序列化器类

@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", 25)
serialized_person = person.serialize()  # 序列化 Person 对象
deserialized_person = Person()  # 创建一个空的 Person 对象
deserialized_person.deserialize(serialized_person)  # 反序列化 Person 对象
print(deserialized_person.name, deserialized_person.age)

在上述示例中,我们首先定义了一个名为 Serialization 的装饰器,它接收一个类作为其参数,
并向该类添加 serialize 和 deserialize 方法。然后,我们使用 @Serialization 装饰器来装饰 Person 类,
使其能够被序列化和反序列化。最后,我们创建了一个 Person 实例,并对其进行了序列化和反序列化,以演示该装饰器的用法。
posted @ 2023-04-08 20:48  我在路上回头看  阅读(38)  评论(0编辑  收藏  举报