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

问题描述 投票:0回答:1

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

有什么我做错了,还是那个bug?我该如何解决这个问题?

mypy python-typing
1个回答
0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.