Stay Hungry,Stay Foolish!

pydantic's one improvement

问题

数据类型一般都提供 kw初始化,和 position 初始化。

例如

class DATA():

      m: int

   n: int

kw 初始化:

d = DATA(m=1, n=1)

position初始化

d = DATA(1, 1)

 

因为对于相对大的数据集合,postion初始化容易对错位置。

例如:

class DATA():

      m: int

   n: int

   。。。

   s: int

而且也有些情况,不需要全部输数据fields都初始化的情况,

这两种情况下, kw初始化方式更加合适。

 

但是pydantic支持这两种初始化方式,

但是对于kw初始化,无法支持 动态提示功能:

 

 

而类似attr库等其它库, 都支持动态提示:

 

 

支持动态提示的库

dataclass

https://realpython.com/python-data-classes/#basic-data-classes

https://www.delftstack.com/howto/python/python-dataclass-to-dict/

attrs

https://www.geeksforgeeks.org/attr-asdict-function-in-python/

https://www.attrs.org/en/21.2.0/examples.html

namedtuple

https://docs.python.org/3/library/collections.html#collections.namedtuple

https://www.geeksforgeeks.org/python-convert-list-of-named-tuples-to-dictionary/

 

不支持动态提示库

pydantic

https://pydantic-docs.helpmanual.io/usage/models/

posted @ 2022-10-27 11:14  lightsong  阅读(23)  评论(0编辑  收藏  举报
Life Is Short, We Need Ship To Travel