数据类是否有一种方式可以添加除其内置初始化程序提供的之外的其他初始化,而不必覆盖它?具体来说,我想在初始化时检查数据类中一个字段中的整数列表的某些值。
数据类是否有一种方式可以添加除其内置初始化程序提供的之外的其他初始化,而不必覆盖它?具体来说,我想在初始化时检查数据类中一个字段中的整数列表的某些值。
__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}}。
这允许您在初始化方法之后运行代码,以执行任何其他设置/检查。
from attr import dataclass
,这是不起作用的! - Meysam Sadeghi__init__
,但不知道为什么它没有被调用,也无法通过任何断点来帮助 :) - wowkin2