如何在 Pycharm 中输入提示“不返回的返回类型”

Posted

技术标签:

【中文标题】如何在 Pycharm 中输入提示“不返回的返回类型”【英文标题】:How to typehint 'return type or no return' in Pycharm 【发布时间】:2021-02-11 19:00:52 【问题描述】:

如何输入提示函数可能返回值或不返回任何内容? PyCharm 报告了对我来说似乎正确的事情。

def func() -> Optional[Dict]:

当函数没有返回任何东西时,这会导致返回类型上的警告:

Expected to return 'Optional[dict]', got no return

但明确返回 None 有效:

def func() -> Optional[Dict]:
    return None

这对 PyCharm 来说没问题。似乎“不归路”的处理方式与 return None 不同,尽管据我了解这两者应该是相同的。

查看所有三个变体的图片:

这样做的正确方法是什么?在我的用例中,该函数是一个类方法,它在子类中的实现将返回None 或一个值。必须在所有不需要它的子类中写 return None 是多余的,我想避免这种情况。

【问题讨论】:

“必须在所有不需要它的子类中编写 return None 是多余的,我想避免这种情况。” - 在从不返回任何内容的函数上使用返回提示也是多余的,那么为什么首先使用提示呢?不管怎样,你可以使用 -> None 作为类型提示,pycharm 会同意 【参考方案1】:

这样做的正确方法是什么?

恕我直言,如果您的函数有时返回数据(Optional[Dict] 暗示了这一点,那么当您的函数不返回任何内容时,明确表明 return None 清楚地表明您没有忘记(记住:explicit is better than implicit)。

我认为 PyCharm 假设如果您指示(有时)不是 None 返回类型并且您有一个没有明确返回的分支,那么您可能犯了一个错误。不幸的是,我无法使用 PyCharm 文档来支持这一点。

【讨论】:

以上是关于如何在 Pycharm 中输入提示“不返回的返回类型”的主要内容,如果未能解决你的问题,请参考以下文章

pycharm 如何添加自定义库路径

pycharm 怎么在命令行中输入参数进行调试

pycharm中的()里的提示怎么关掉?

如何在 PyCharm 中显示类型提示?

pycharm输入代码后,没有补全提示

如何在pycharm里面安装pygame