如何在python中发展数据类?

时间:2019-05-31 23:28:10

标签: python python-dataclasses

我有兴趣使用dataclass,因为语法比attr短。但是我找不到使用例如API开发它的API的快捷方式。以下代码:

@dataclass
class AB(object):
    a: int = 1
    b: int = 2

AB().evolve(b=3)

result = AB(a=1, b=3)

找到现成的替代品容易吗?还是自己实现?

1 个答案:

答案 0 :(得分:1)

dataclasses.replace()函数大致等同于attr.evolve()函数。

根据您的代码使用示例:

import dataclasses
from dataclasses import dataclass

@dataclass
class AB(object):
    a: int = 1
    b: int = 2


ab_object = AB()
another_ab_object = dataclasses.replace(ab_object, b=3)

print(ab_object)
# Output: AB(a=1, b=2)
print(another_ab_object)
# Output: AB(a=1, b=3)