除了内置初始化程序提供的内容之外,数据类是否有办法添加额外的初始化,而不覆盖它?具体来说,我想在初始化时检查作为数据类中字段之一的整数列表的一些值。
最佳答案
如 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
。
这允许您在初始化方法之后运行代码,以执行您可能想要执行的任何其他设置/检查。
关于Python 3 数据类初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51199031/