※ 商品リンクから購入されると少額の報酬が発生することがあります。
django-ninjaから派生して、pydanticが気になったので少し読んで、さらに気になったことをメモ
BaseModelのmetaclassがABCMetaなのはなぜ?
特にABCMetaの機能を使ってなさそうに読めたので、なぜなのかが気になる。
https://github.com/samuelcolvin/pydantic/issues/120
ABC/ABCMetaと一緒に使いたいけどmetaclassがconflictしてムズイ
そうそう、metaclassは混ぜられないんですよね。
pydantic自体は、classに定義されているフィールドなんかをゴニョゴニョする必要があるので、metaclassを使うのだけれど、Abstract Base Classは一緒に使いたい場合あるよねー、特に問題ないしmetaclassのベースをABCMetaにしとくねー。ってことらしい。なるほど
独自dunderが色々定義されてるなー
https://docs.python.org/3/reference/lexical_analysis.html#reserved-classes-of-identifiers
予告なくぶっ壊すよ?知らんよ?って書かれてるのであまり参考にしない方が良いかも?