栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

您正在寻找

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__
直接访问它的属性来代替。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/637637.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号