Python类型,命名元组在调用_asdict()时缺少默认值
我有这门课Python类型,命名元组在调用_asdict()时缺少默认值,python,python-3.7,python-typing,Python,Python 3.7,Python Typing,我有这门课 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 =
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
这些不是默认值,它们是类变量。这就是他们失踪的原因,很遗憾。