【问题标题】:How to type check a function in python3 that has an optional argument initially set to None? [duplicate]如何在python3中输入一个可选参数最初设置为None的函数? [复制]
【发布时间】:2019-12-14 20:03:00
【问题描述】:

如何在具有可选参数的函数中使用类型检查?例如:

def do_something_cool(number1: int, letter1: str, seed=None: (None, int) )-> str:
    return 

会因为(None, int) 而失败。什么是正确的语法?

【问题讨论】:

  • 现在你的代码失败了,因为你的括号不匹配(你永远不会关闭参数列表)。

标签: python python-3.x typechecking


【解决方案1】:

对于大多数类型检查器,以下工作无需明确说明该值是不可实现的:

def do_something_cool(number1: int, letter1: str, seed: int = None) -> str:
    return 

但是,您也可以显式指定该值是 nonable:

from typing import Optional

def do_something_cool(number1: int, letter1: str, seed: Optional[int] = None) -> str:
    return

这里的大警告:typing.Optional 实际上意味着 Nonable 并且与您的值具有默认值这一事实无关(因此它并不意味着“可选”)。见this discussion。记住它的一种方法是将Optional 视为应用于类型,而不是应用于值。

PEP484 之前建议使用隐式写入,但现在建议您在值为 Nonable 时显式声明 Optional。见here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-25
    • 2022-10-16
    • 2010-11-14
    • 1970-01-01
    • 1970-01-01
    • 2013-06-05
    • 1970-01-01
    • 2011-10-06
    相关资源
    最近更新 更多