问题描述
在 python 中,我有一个对象 data
,它可能是任何对象。
在 vscode v1,v2 = data # type: str,str
语句中,我希望 v1,v2
会弹出 str 方法。
在 vscode v1,v2 = data # type: dict,set
这句我想要 v1,v2
会弹出 dict,set 方法。
data = (object,object)
v1,str
v11,v22= data # type: dict,set
Type annotation not supported for this type of expression
Unexpected token at end of expression
解决方法
不确定我是否正确理解您的观点,但您可以根据需要声明数据类型,然后声明变量类型:
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