声明变量的奇怪方式Python [duplicate]

jgwigjjp  于 2022-12-15  发布在  Python
关注(0)|答案(1)|浏览(152)

此问题在此处已有答案

What are variable annotations?(2个答案)
What are type hints in Python 3.5?(5个答案)
4天前关闭。
我在互联网上遇到过这种声明变量的方式,但看不到它的效果

some_variable:str = 'abc'

看起来并没有像第一次猜测的那样改变数据类型。

test_var:str=1

变量的类型仍为int作为测试

type(test_var)

这到底是什么

mwkjh3gx

mwkjh3gx1#

这是“类型检查”。它的有效性取决于IDE的功能。它与运行时行为无关。
例如:

x:str = 0

类型提示建议 x 只能引用 str 类型。但是,这里我们赋值零(一个 int)。在运行时,赋值将按照编写的那样发生。但是,您的IDE可能会突出显示一个潜在问题。
在我看来,类型暗示的用处有限,下面是另一个例子:

def afunc(s):
    i:str = s
    return i
def bfunc():
    return 0
    
afunc(bfunc())

在这种情况下,变量 i 将在运行时被赋值为 int,但IDE无法检测到任何潜在的问题。[警告:VSCode中的Pylance无法检测到该问题。其他静态类型检查器可能更智能]

相关问题