除了内置初始化器提供的初始化之外,数据类有没有办法添加额外的初始化,而不覆盖它?具体地说,我希望在初始化时检查整数列表的一些值,该列表是数据类中的一个字段。
发布于 2018-07-09 22:47:51
正如dataclass PEP中所描述的,有一个__post_init__方法,它将是__init__最后调用的方法。
from dataclasses import dataclass
@dataclass
class DataClass:
some_field: int
def __post_init__(self):
print(f"My field is {self.some_field}")定义这个数据类,然后运行以下命令:
dc = DataClass(1) # Prints "My field is 1"将some_field初始化为1,然后运行__post_init__,打印My field is 1。
这允许您在初始化方法之后运行代码,以执行您可能想要执行的任何其他设置/检查。
https://stackoverflow.com/questions/51199031
复制相似问题