Python pydantic模块仅在init中检查变量

Python pydantic模块仅在init中检查变量,python,pydantic,Python,Pydantic,pydantic模块仅在init中检查变量 pip安装pydantic 范例 from pydantic.dataclasses import dataclass @dataclass class Glass: capacity_volume : float occupied_volume : float glass = Glass(300, 100) # OK int to float print(glass) # Glass(capacity_volume=50

pydantic模块仅在init中检查变量

pip安装pydantic

范例

from pydantic.dataclasses import dataclass
@dataclass
class Glass:
    capacity_volume : float
    occupied_volume : float

glass = Glass(300, 100)       # OK int to float
print(glass) # Glass(capacity_volume=500.0, occupied_volume=0.0)

glass = Glass(300.0, 100.0)   # OK 
print(glass) # Glass(capacity_volume=500.0, occupied_volume=0.0)

glass = Glass('300', '100')   # OK str to float    
print(glass) # Glass(capacity_volume=500.0, occupied_volume=0.0)

glass.capacity_volume = '300' 
print(glass) # Glass(capacity_volume='300', occupied_volume=0.0)

如果设置了变量类型,是否可以检查它们?

是的,如果我理解正确,完全可以:

从pydantic.dataclasses导入dataclass
类配置:
验证分配=真
@数据类(config=config)
玻璃等级:
容量/体积:浮动
已占用卷:浮动
玻璃=玻璃('300'、'100')
印刷品(玻璃)
#>玻璃(容量/体积=300.0,占用/体积=100.0)
玻璃容量×体积='400'
印刷品(玻璃)
#>玻璃(容量/体积=400.0,占用/体积=100.0)

是的,如果我理解正确,完全可能:

从pydantic.dataclasses导入dataclass
类配置:
验证分配=真
@数据类(config=config)
玻璃等级:
容量/体积:浮动
已占用卷:浮动
玻璃=玻璃('300'、'100')
印刷品(玻璃)
#>玻璃(容量/体积=300.0,占用/体积=100.0)
玻璃容量×体积='400'
印刷品(玻璃)
#>玻璃(容量/体积=400.0,占用/体积=100.0)