相关疑难解决方法(0)

如何复制python类?

deepcopycopy不会复制一个类:

>>> 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)

python

47
推荐指数
4
解决办法
5万
查看次数

为什么 Final 字典不能用作 TypedDict 中的文字?

我正在尝试完成以下任务(请参阅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 使用相同的架构(一个具有整体性,一个不具有整体性),而不必复制架构?

python dictionary type-hinting mypy python-typing

6
推荐指数
1
解决办法
590
查看次数

标签 统计

python ×2

dictionary ×1

mypy ×1

python-typing ×1

type-hinting ×1