Python类型、命名元组在调用_asdict()时缺少默认值

2024-10-01 00:35:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这门课

from typing import Tuple, NamedTuple, cast, List, Dict
class PdfRequestDownloadData(NamedTuple):
  workspace_id: int
  since: str
  until: str
  project_ids: List[int]
  date_format = "YYYY-MM-DD"
  duration_format = "improved"
  hide_amounts = True
  hide_rates = True
  order_by = "title"
  order_dir = "asc"
  sub_grouping = "time_entries"

请注意,底部部分是默认值,例如带有=

我叫:

x = PdfRequestDownloadData(project_ids=[projectid], workspace_id=workspaceid,since=fromdate, until=todate)

print(x._asdict())

输出:

OrderedDict([('workspace_id', 98333), ('since', '2019-08-01'), ('until', '2019-08-31'), ('project_ids', [123334])])

所有的默认值都到哪里去了?什么是好的解决方案


Tags: projectidtrueidsformatordernamedtupleworkspace
1条回答
网友
1楼 · 发布于 2024-10-01 00:35:26

您缺少“默认值”的类型注释,因为它们是类属性。如果给它们一个类型,它们将是实例属性:

class C:
    required: int
    optional: int = 5

typing.NamedTuple

相关问题 更多 >