当前位置: 首页 > 知识库问答 >
问题:

为python数据类中的字段定义约束

景同
2023-03-14

我是python数据类的新手,想知道是否有一种聪明的方法为python数据类中的字段定义约束。

假设我们有一个数据类“SomeConfiguration”,它有3个字段(field1、field2、field3),这些字段都是浮点。我所处的环境中经常创建配置对象,并且字段是随机分配的,我希望确保字段的某些约束始终得到满足。例如,以下约束:2*field1>(-1)*field3

@dataclass
class SomeConfiguration(Configuration):
   field1: float
   field2: float
   field3: float

config = create_random_configuration()

for field in fields(config):
   check_if_constraints_for_field_are_met(field, config)

共有1个答案

葛修真
2023-03-14

可以在__post_init__中执行此操作:

@dataclass
def SomeConfiguration(Configuration):
    field1: float
    field2: float
    field3: float

    def __post_init__(self):
        for field in fields(self):
            check_if_constraints_for_field_are_met(field, self)
 类似资料:
  • 想给方法自定义数据类型,通过资料查到可以用 dataclass 这样就很简洁,但貌似传入必须是实例化的方式,我更希望是字典的形式,请问有什么简洁的好的方法?

  • 我可以使用自定义字段值获取数据吗?我的是,字段名是。那么,如何使用获取所有数据呢? 代码如下: 此代码不起作用。

  • 是否可以创建string类型的自定义字段并在显示字段描述时显示它们?我想用YouTrack实现一个bug数据库,如果字段“steps to reproduce”必须写在一个很小的列中,这是不可能做到的。 我正在使用YouTrack2018.1。

  • 遵循电子商务签出字段自定义文档: 使用操作和筛选器自定义签出字段 我已经通过函数向woocommerce结帐页面添加了一个自定义字段。php。 我担心是否必须清理自定义字段的用户输入? 我认为它不需要消毒,因为它被传递到帐单字段中,如:$fields['billing'],对吗? 如果没有,我如何清理这个自定义字段? 创建此自定义字段意味着接受长度不超过50的文本字符串(拉丁文)和整数的组合。

  • 问题内容: 我的扩展程序具有一个包含项目的上下文菜单。我想要做的是:右键单击html元素(例如,输入或文本区域),然后选择并单击菜单中的某个项目时- 由扩展名定义的某些值将输入到输入中。 目前,我已经意识到。 简单的输入就可以了。 当存在具有自定义事件处理的输入(例如日历或电话输入或货币输入)时,问题就开始了,这些输入以某种方式转换了用户输入。 由于我直接在元素上设置了一个值-省略了处理逻辑,这会

  • 另外,如果一个键的值为null,那么它就是被接受的默认值,所以我也不能使用@NotNull。对于eg:[{firstKey:null,secondKey:“value2”,thirKey:“value3”}]是有效的JSON,在反序列化过程中应该毫无异常地进行解析。