【问题标题】:Optional type hint in Google Style GuideGoogle Style Guide 中的可选类型提示
【发布时间】:2020-08-20 06:57:41
【问题描述】:

我对@9​​87654321@ 中的Optional 类型提示有疑问。在第 3.19.5 节中,正确用法如下所示:

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

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

【问题讨论】:

  • 大概只是因为第一个参数没有默认值。为什么= None
  • @jonrsharpe 在没有传递任何内容的情况下,a 会在函数中取什么值?
  • @Carcigenicate 那么为什么类型提示Optional?我的理解中似乎遗漏了一些东西。
  • 它不会取任何值;这是一个TypeError,这个函数永远不会被输入。

标签: python type-hinting google-style-guide


【解决方案1】:

仅仅因为它是Optional 并不意味着它需要一个默认参数,或者该参数是“可选的”。

Optional[Text] 表示“它可以是Text 对象,也可以是None”。 None 值不必是指定的默认值;它可以由用户提供。无论出于何种原因,您都可能希望用户传递该参数,即使它只是 None

部分混淆可能是此处使用了“可选”一词。在这种情况下,“可选”并不意味着该参数是可选的。这意味着它是option type

【讨论】:

    猜你喜欢
    • 2012-09-04
    • 2019-08-09
    • 1970-01-01
    • 1970-01-01
    • 2021-08-11
    • 1970-01-01
    • 1970-01-01
    • 2017-11-30
    • 1970-01-01
    相关资源
    最近更新 更多