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



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

所以基本上我的函数看起来像这样:

def a(b: Optional[str]):
if b is None:
<do something>
else:
<do something>

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

我的 python 版本是>=3。

如上文注释所述,Optional[str]是 IDE 和其他静态分析工具要使用的类型提示,而不是默认参数。 如果你想做一个默认参数,以便你可以用a()调用函数,那么你确实需要按照你的建议添加= None。 如果您希望使用省略的参数调用此函数,这可能是一种合理的方法,但这取决于您的设计和体系结构。

最新更新