如何在 python 中进化数据类?
How to evolve a dataclass in python?
我有兴趣使用数据类,因为语法比 attr 更短。但是我找不到提供 API 来进化它的快捷方式,例如使用以下代码:
@dataclass
class AB(object):
a: int = 1
b: int = 2
AB().evolve(b=3)
result = AB(a=1, b=3)
是否容易找到开箱即用的替代品?还是自己实现?
dataclasses.replace()
function is roughly equivalent to the 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)
我有兴趣使用数据类,因为语法比 attr 更短。但是我找不到提供 API 来进化它的快捷方式,例如使用以下代码:
@dataclass
class AB(object):
a: int = 1
b: int = 2
AB().evolve(b=3)
result = AB(a=1, b=3)
是否容易找到开箱即用的替代品?还是自己实现?
dataclasses.replace()
function is roughly equivalent to the 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)