【发布时间】:2018-09-23 15:32:42
【问题描述】:
编辑
根据@Jim Fasarakis Hilliard 的回答,我知道这不是错误,而是预期的行为。所以,我想补充一个问题——我可以在PyCharm 的类型检查器中以某种方式强制mypys --strict-optional 类似功能吗?
看了几个关于Python 3.5+ 和Pycharm 类型检查的视频后,我认为这应该被标记为错误的返回类型:
from typing import Optional, List
import random
def r() -> Optional[List[int]]:
if random.choice([0, 1]):
return [1, 2, 3]
return None
def f() -> List[int]:
return r()
f() 函数可以返回 list 或 ints 或 None,这是明确指定的,但 PyCharm 不会将 return r() 标记为错误返回。
def f() -> List[int]:
return None
例如,如果f() 函数如上所示,PyCharm 检测到有错误的return 类型。
这是一个错误还是我应该更改一些设置?我将类型检查的严重性提高到error。
【问题讨论】:
标签: python python-3.x pycharm python-3.5 typing