Python类型注释,返回类型或无错误

时间:2019-06-13 17:50:19

标签: python types error-handling

用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'

这似乎表明该函数是否返回字符串是完全可以的,但是如果该函数不返回字符串,则它不是可以的。确实应该返回一个字符串。

“可选”会污染结果的类型,使用返回值的其他任何类型检查也必须处理“可选”。

我使用了许多库,其中的函数描述类似于“返回正整数或无错误”,因此这种无错误的范式表示错误会影响许多下游类型。

  • 是否有一种简洁的方法可以说一个函数返回一个类型,除非出现错误,否则不会在以后的代码中波动?
  • 返回像空字符串之类的东西来指示错误,而不是“污染”下游类型是否会更加Pythonic? (如果返回类型为整数,则为错误的整数)
  • 还是Python引发错误并要求调用者捕获错误的方法?

0 个答案:

没有答案