编辑
根据@Jim Fasarakis Hilliard的回答,我理解这不是一个 bug,而是预期行为。所以,我想要补充问题 - 我是否可以在PyCharm
的类型检查器中强制实现mypy
的--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()
函数可以返回int
列表或显式指定的None
,但PyCharm
不会将return r()
标记为错误返回。
def f() -> List[int]:
return None
例如,如果f()
函数看起来像上面那样,PyCharm
检测到有错误的return
类型。这是一个错误还是我需要改变一些设置?我将类型检查的严重程度增加到
error
。