作为一个实验,我想在项目中添加类型注释,并使用mypy --strict
对其进行测试。考虑以下代码和以下错误消息:
#!/usr/bin/env python
import typing as T
from dataclasses import dataclass
@dataclass(frozen=True)
class Question:
choices: T.Tuple[None]
def gen_question() -> Question:
choices = [None]
return Question(choices=tuple(choices))
if __name__ == '__main__':
gen_question()
这是错误消息:
test.py:18: error: Argument "choices" to "Question" has incompatible type "Tuple[None, ...]"; expected "Tuple[None]"
我在做错什么,还是那是个错误?我该如何解决这个问题?
答案 0 :(得分:0)
看来,在键入.tuple的情况下,根据documentation,如果我需要指定可变长度的元组,则需要添加, ...
,如下所示:
choices: T.Tuple[None, ...]
请注意,这似乎不适用于列表。