Python 3 数据类初始化

标签 python python-3.x

除了内置初始化程序提供的内容之外,数据类是否有办法添加额外的初始化,而不覆盖它?具体来说,我想在初始化时检查作为数据类中字段之一的整数列表的一些值。

最佳答案

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/

相关文章:

python-3.x - 如何在 Visual Studio Code 中使用 activate.bat 而不是 ps1 运行选定文本?

python-3.x - 如何比较不同数据框 Pandas 的相同 id 的不同值

python - 无法获取按钮来切换 pygame 中的更改

python - 使用 geopy 检索位置精度

python - 在 Python 中导航多维 JSON 数组

python - 使用第二个按钮更改按钮状态

regex - Python 3 用字典中的数据替换部分字符串

python - 已有背景图像时如何获取前景蒙版

python - 如何获取装饰器包装的函数的源代码?

python - 为什么所有包都在 2.7/dist-packages (python) 中