用Python的方式注释函数以指示“返回xxxx或无则返回错误”是什么?
我经常使用一些函数来返回单一类型的数据-或“无”以指示错误。例如
def GoodName(name):
if name = '':
return None
if name = 'Kevin':
return 'good'
else:
return 'meh'
如果我添加类型注释,则如下所示:
def GoodName(name:str) -> Optional[str]:
if name = '':
return None
if name = 'Kevin':
return 'good'
else:
return 'meh'
这似乎表明该函数是否返回字符串是完全可以的,但是如果该函数不返回字符串,则它不是可以的。确实应该返回一个字符串。
“可选”会污染结果的类型,使用返回值的其他任何类型检查也必须处理“可选”。
我使用了许多库,其中的函数描述类似于“返回正整数或无错误”,因此这种无错误的范式表示错误会影响许多下游类型。