除了内置的初始值设定项之外,DataClass是否有方法添加额外的初始化,而不重写它?具体地说,我想在初始化时判断作为数据类中的字段之一的整数列表的一些值.
除了内置的初始值设定项之外,DataClass是否有方法添加额外的初始化,而不重写它?具体地说,我想在初始化时判断作为数据类中的字段之一的整数列表的一些值.
如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
.
这允许您在初始化方法之后运行代码,以执行可能需要执行的任何其他设置/判断.