为什么/何时将 field() 用于不可调用的默认值?

Why/when would you use field() for a non-callable default?

提问人:Zeke Arneodo 提问时间:10/7/2023 最后编辑:khelwoodZeke Arneodo 更新时间:10/7/2023 访问量:16

问:

我试图了解何时使用field(default=x)是正确的。

我知道在默认值可调用的情况下,不这样做是错误的。例如:

@dataclass
class SomeClass:
   obj_content: list = field(default=[])

而不是

@dataclass
class SomeClass:
   obj_content: list = []

但是,当默认值不是时,有什么区别呢?

@dataclass
class SomeClass:
   obj_id: int = field(default=0)

@dataclass
class SomeClass:
   obj_content: int=0
python-3.x python-data类

评论

0赞 mkrieger1 10/7/2023
你已经读过 docs.python.org/3/library/dataclasses.html#dataclasses.field 了吗?还有什么不清楚的?
0赞 mkrieger1 10/7/2023
顺便说一句,如果默认为空列表,您可能应该使用 ,而不是 .default_factory=listdefault=[]

答: 暂无答案