如何在 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 中输入提示“不返回的返回类型”的主要内容,如果未能解决你的问题,请参考以下文章