我浏览了 PEP-0589,我想知道
typing.TypedDict
在子类化它时为什么/如何工作:
class A(TypedDict, total=False):
x: int
y: int
具体来说,
TypedDict
是一个公开__mro_entries__
的函数,它又是一个返回元类构造函数的函数。
有几件事我不明白:
total
kwarg - 该变量是如何提供给 TypedDict
构造函数的?我真的很感激有人详细解释这个魔法并提供文档,因为我在官方文档中找不到它。
它实际上是
__mro_entries__
提供的 TypedDict
让你可以继承它。来自其文档:
如果类定义中出现的基类不是
的实例,则在该基类上搜索type
方法。如果找到 mro_entries() 方法,则 创建类时,基类将被替换为__mro_entries__()
的调用结果。__mro_entries__()