Python类型注释,为E返回Type或None

2024-07-02 12:05:10 发布

您现在位置:Python中文网/ 问答频道 /正文

什么是Pythonic的方式来类型注释一个函数,以指示“返回类型xxxx或无错误?”你知道吗

我经常使用返回单一类型数据的函数,或者不返回表示错误的数据。e、 g

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'

这似乎表明函数返回字符串或不返回字符串是完全正常的,但是如果函数不返回字符串则是不正常的。它实际上应该返回一个字符串。你知道吗

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

我使用了许多函数库,其中函数描述类似于“返回一个正整数或一个错误返回None”,因此这种None表示错误的范例会影响很多下游类型。你知道吗

  • 有没有一种简洁的方法来说明函数返回一个类型,除非在错误的情况下,它不会在以后的代码中产生涟漪?你知道吗
  • 返回一个空字符串来表示错误,这样就不会“污染”下游类型,这会更像python吗?(如果返回类型为integer,则为错误整数)
  • 或者是Pythonic抛出错误并要求调用者捕捉它?你知道吗

Tags: 数据函数字符串namenone类型returnif