为什么Pycharm不捕捉类型错误?

2024-06-26 00:15:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我有点困惑为什么Pycharm不区分两种不同的可选类型。你知道吗

考虑以下代码。 你知道吗

def funcs(foo:Optional[str]=None):
    print(foo)

def funci(var:Optional[int]=None):
    funcs(var)

argi = 1
args = "something"
argn = None

funcs(argi)
funcs(args)
funcs(argn)

注意,funcs内的funci调用没有发现将可选的[int]传递给正在寻找可选[str]的函数的问题。 enter image description here

然而,如果我们去掉可选的str,检查就会发出吠声。 enter image description here

这是预期的行为吗?如果是,我能做些什么?你知道吗

我的直觉告诉我类型检查应该足够聪明来区分Optional[str]Optional[int]之间的区别。我通读了PEP-526PEP-484都没有用。你知道吗


Tags: none类型foovardefargsoptionalpep