假设我有一些BaseModel
,并且我想检查一下它的options
列表是否为空。我可以用validator
做到完美:
class Trait(BaseModel):
name: str
options: List[str]
@validator("options")
def options_non_empty(cls, v):
assert len(v) > 0
return v
还有其他更优雅的方法吗?
答案 0 :(得分:2)
如果要使用var name: String? = nil
switch name {
case let actualName? :
print("Hello \(actualName)")
default :
print("Hello, anonymous")
}
:
@validator
Python假定空列表的 boolean-ess 为False
如果您不想使用return v if v else doSomething
:
在Pydantic中,使用conlist
:
@validator
答案 1 :(得分:1)
在Python中,空列表为假,而具有任意数量元素的列表为真:
>>> bool([])
False
>>> bool([1,2,3])
True
>>> bool([False])
True
>>> bool([[]])
True
这意味着您可以简单地assert v
或assert Trait.options
来确认列表为非空。