参数“ xyz”到“ ABC”的类型“ Tuple [None,...]”不兼容;预期为“元组[无]”

时间:2019-04-20 14:07:16

标签: mypy python-typing

作为一个实验,我想在项目中添加类型注释,并使用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]"

我在做错什么,还是那是个错误?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

看来,在键入.tuple的情况下,根据documentation,如果我需要指定可变长度的元组,则需要添加, ...,如下所示:

    choices: T.Tuple[None, ...]

请注意,这似乎不适用于列表。