gpt4 book ai didi

不允许 Python 类型提示 Dict 语法错误可变默认值。使用 'default factory'

转载 作者:行者123 更新时间:2023-12-04 00:22:57 26 4
gpt4 key购买 nike

我不确定为什么口译员会提示这个输入的 Dict。对于这两个实例,我得到一个“ 不允许可变默认值。使用默认工厂 ”语法错误。我正在使用 python 3.7.3

from dataclasses import dataclass
from typing import Dict

@dataclass
class Test:
foo: Dict[str, int] = {}
bar: Dict[str, float] = {'blah': 2.0}

弄清楚了。这是导致问题的@dataclass 注释。有人能告诉我为什么吗?

最佳答案

是的,提高 dataclass 是为了避免您意外地为每个使用默认值实例化的 Test 对象提供相同的字典。
您可以调整上述内容以提供默认工厂(每次需要默认值时创建一个新字典的函数),如下所示:

from dataclasses import dataclass, field
from typing import Dict

@dataclass
class Test:
foo: Dict[str, int] = field(default_factory=dict)
bar: Dict[str, float] = field(default_factory=lambda: {'blah': 2.0})

关于不允许 Python 类型提示 Dict 语法错误可变默认值。使用 'default factory',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59222110/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com