如何使用类型提示指定“空”返回类型

如何使用类型提示指定“空”返回类型,第1张

如何使用类型提示指定“空”返回类型

您正在寻找

Optional

由于您的返回类型可以是

datetime
(从返回
datetime.utcnow()
),
None
也应该使用
Optional[datetime]

from typing import Optionaldef get_some_date(some_argument: int=None) -> Optional[datetime]:    # as defined

在有关打字的文档中,

Optional
是以下内容的简写

Optional[X]
等价于
Union[X, None]

其中

Union[X, Y]
表示类型
X
或的值
Y


如果由于担心别人可能偶然发现

Optional
而没有意识到它的含义而希望变得露骨,则可以始终使用
Union

from typing import Uniondef get_some_date(some_argument: int=None) -> Union[datetime, None]:

但是我怀疑这是一个好主意,

Optional
是一个指示性名称,它确实节省了几次击键。

正如@ Michael0x2a的注释中指出的那样,

Union[T, None]
已转换为,
Union[T,type(None)]
因此无需在
type
此处使用。

在视觉上,这两种方法可能有所不同,但在编程上,结果是 完全相同的

Union[datetime.datetime,NoneType]
将是存储在
get_some_date.__annotations__
*中的类型:

>>> from typing import get_type_hints>>> print(get_type_hints(get_some_date)){'return': typing.Union[datetime.datetime, NoneType], 'some_argument': typing.Union[int, NoneType]}

*用

typing.get_type_hints
抢的对象的
__annotations__
直接访问它的属性来代替。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5643456.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存