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



我有这个类

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

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

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

class C:
required: int
optional: int = 5

打字。命名元组

最新更新