在 Python 中,我们应该在参数列表中设置 Optional[str] = None 吗?

hpn*_*xwn 4 python python-3.x

我的同事说我最近写的代码崩溃了,那是因为在函数的参数列表中我没有指定Optional[str] = None. 我只有Optional[str].

所以基本上我的函数是这样的:

def a(b: Optional[str]):
    if b is None:
        <do something>
    else:
        <do something>
Run Code Online (Sandbox Code Playgroud)

我一直认为 Optional 参数的默认值是 None,所以我没有指定默认值。它没有为我崩溃,但为我的同事崩溃了,所以我有点困惑。

我的python版本是>=3。

小智 8

正如上面的评论中提到的,Optional[str]是 IDE 和其他静态分析工具使用的类型提示,而不是默认参数。如果您想创建一个默认参数,以便您可以使用 调用该函数a(),那么您确实需要= None按照您的建议进行添加。如果您希望使用省略的参数调用此函数,这可能是一种合理的方法,但这将取决于您的设计和架构。