如何将鼠标悬停在变量上时查找变量的类型? PYTHON、Visual Studio 代码

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

实际上,对于这个问题,我想在用鼠标悬停在变量上时找出它的类型,但现在这不起作用。有谁知道如何做到这一点?现在,例如,当鼠标悬停在 X 上时,他写了某种 Literal,尽管我直接将变量的类型声明为 Int

enter image description here

python visual-studio-code pyright
1个回答
0
投票

在工具提示中,

Literal
指的是
typing.Literal
,它是一种特殊形式,用于定义一个类型,该类型是所有给定文字值的集合。

很容易看出

Literal[1]
int
的子类型,
Literal['foo']
str
的子类型等等。

在这种情况下,类型检查器 (Pyright) 能够推断出

x
的更具体类型,因此它会继续执行此操作。这是一个功能,而不是一个错误。根据流程,此类型可能会发生变化:

游乐场链接

x = 1235
reveal_type(x)      # Literal[1235]

for _ in range(0):
    x += 2
    reveal_type(x)  # int

reveal_type(x)      # int

还应该注意的是,其他类型检查器可能会出现这种情况,也可能不会;也就是说,这是特定于实现的。以Mypy为例:

(游乐场链接:MypyPyright

x1: int
x1 = 1235
reveal_type(x1)  # pyright => Literal[1235]
                 # mypy => int

x2: int = 1235
reveal_type(x2)  # pyright => Literal[1235]
                 # mypy => int

x3 = 1235
reveal_type(x3)  # pyright => Literal[1235]
                 # mypy => int

x4 = 1233 + 2
reveal_type(x4)  # pyright => Literal[1235]
                 # mypy => int

据我所知,目前没有配置来控制此行为。您可以通过创建问题来请求一个。

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