deepcopy从copy不会复制一个类:
>>> class A(object):
>>> ARG = 1
>>> B = deepcopy(A)
>>> A().ARG
>>> 1
>>> B().ARG
>>> 1
>>> A.ARG = 2
>>> B().ARG
>>> 2
Run Code Online (Sandbox Code Playgroud)
这是唯一的方式吗?
B(A):
pass
Run Code Online (Sandbox Code Playgroud) 我正在尝试完成以下任务(请参阅mypy Playground):
from typing import TypedDict, Final
account_schema: Final = {"name": str, "email": str}
Account = TypedDict("Account", account_schema)
AccountPatch = TypedDict("AccountPatch", account_schema, total=False)
Run Code Online (Sandbox Code Playgroud)
我的想法是,我可以在一个地方指定我的模式,一个版本需要所有字段(Account插入数据库时),另一个版本使所有字段可选(AccountPatch更新数据库时)。
来自PEP 586:
限定符
Final用作声明变量有效的简写Literal。
但mypy错误如下:
error: TypedDict() expects a dictionary literal as the second argument
Run Code Online (Sandbox Code Playgroud)
为什么不允许TypedDict字典Final作为其第二个参数?
对于我的核心问题,我是否可以对两个TypedDicts 使用相同的架构(一个具有整体性,一个不具有整体性),而不必复制架构?