相关疑难解决方法(0)

如何在继承的数据类中创建可选字段?

from typing import Optional

@dataclass
class Event:
   id: str
   created_at: datetime
   updated_at: Optional[datetime]
   #updated_at: datetime = field(default_factory=datetime.now)  CASE 1
   #updated_at: Optional[datetime] = None                       CASE 2

@dataclass
class NamedEvent(Event):
  name: str

Run Code Online (Sandbox Code Playgroud)

创建事件实例时,我通常不会有updated_at字段。current time在数据库中进行插入时,我可以传递作为默认值或添加一个值,并在对象的后续使用中获取它。哪种方法更好?根据我的理解,我无法在不通过case1 和 case2 中的 updated_at字段的NamedEvent情况创建实例,因为我在 name 字段中没有默认值。

python python-3.x python-dataclasses

13
推荐指数
1
解决办法
2万
查看次数

__new__方法返回与第一个arg不同类型的对象的用例是什么?

文档意味着它的确定__new__(cls, ...)返回比不同类型的对象cls.它说在那种情况下__init__()不会被调用.它没有明确说明,但常识或简单的测试确认了对象的结果不会有类型cls.

为什么允许这种看似奇怪的行为?用例是什么?这显然是故意的.

python constructor class object

9
推荐指数
1
解决办法
264
查看次数