Google 风格指南中的可选类型提示

Optional type hint in Google Style Guide

我对 Google Python Style Guide 中的 Optional 类型提示有疑问。在第 3.19.5 节中,以下显示为正确用法:

def func(a: Optional[Text], b: Optional[Text] = None) -> Text:

我不明白a: Optional[Text]。为什么不是a: Optional[Text] = None

仅仅因为它是 Optional 并不意味着它需要默认参数,或者参数是 "optional".

Optional[Text] 表示 "it can be a Text object, or it can be None"。 None 值不必是指定的默认值;它可以由用户提供。无论出于何种原因,您可能希望用户传递该参数,即使它只是 None.

部分混淆可能是此处使用了术语 "optional"。 "Optional" 在此上下文中并不意味着该参数是可选的。这意味着它是一个 option type.