1

在 python 中,我有一个对象data,它可能是任何对象。在我想要
的 vscode语句中会弹出 str 方法。在我想要 的 vscode语句中会弹出 dict,set 方法。v1, v2 = data # type: str, strv1, v2
v1, v2 = data # type: dict, setv1, v2

data = (object, object)

v1, v2 = data # type: str, str

v11, v22= data # type: dict, set

但它在pylance中显示错误

Type annotation not supported for this type of expression
Unexpected token at end of expression
4

1 回答 1

0

不确定我是否正确理解了您的观点,但是如果需要,您可以声明数据类型,然后声明变量类型:

import typing as ty

data = ({}, 0.0)  # type: ty.Tuple[dict, float]

v1: "dict"
v2: "str"
v1, v2 = data

我无法在 vscode 上对其进行测试,但上面给出了与 pyright 一致的类型检查(由 pylance 使用)

编辑:集成@Abhijit 评论,对于 python 3.9+ 将是:

data: tuple[dict, float] = ({}, 0.0)

v1: "dict"
v2: "str"
v1, v2 = data
于 2021-07-13T09:59:33.720 回答