首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python 3数据类初始化

Python 3数据类初始化
EN

Stack Overflow用户
提问于 2018-07-06 04:01:49
回答 1查看 20.1K关注 0票数 45

除了内置初始化器提供的初始化之外,数据类有没有办法添加额外的初始化,而不覆盖它?具体地说,我希望在初始化时检查整数列表的一些值,该列表是数据类中的一个字段。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-09 22:47:51

正如dataclass PEP中所描述的,有一个__post_init__方法,它将是__init__最后调用的方法。

代码语言:javascript
复制
from dataclasses import dataclass

@dataclass
class DataClass: 
    some_field: int

    def __post_init__(self):
        print(f"My field is {self.some_field}")

定义这个数据类,然后运行以下命令:

代码语言:javascript
复制
dc = DataClass(1) # Prints "My field is 1"

some_field初始化为1,然后运行__post_init__,打印My field is 1

这允许您在初始化方法之后运行代码,以执行您可能想要执行的任何其他设置/检查。

票数 87
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51199031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档