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

如何在Python中创建自己的“参数化”类型(如“ Optional [T]”)?

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

如何在Python中创建自己的“参数化”类型(如“ Optional [T]”)?

如果您只是尝试创建泛型类或函数,请尝试查看mypy-
lang.org上有关泛型类型
的文档-它相当全面,比标准库键入文档更详细。

如果您要实现自己的特定示例,则需要指出类型别名可以与typevars一起使用-您可以简单地执行以下操作:

from typing import Union, TypeVar, TupleT = TypeVar('T')MaybeWrapped = Union[T, Tuple[T]]def foo(x: int) -> MaybeWrapped[str]:    if x % 2 == 0:        return "hi"    else:        return ("bye",)# When running mypy, the output of this line is:# test.py:13: error: Revealed type is 'Union[builtins.str, Tuple[builtins.str]]'reveal_type(foo(3))

但是,如果您试图用一种全新的语义来构造一个泛型类型,那么您很可能会走运。您剩余的选择是:

  1. 构造某种自定义类/元类的东西,符合PEP 484的类型检查器 可以 理解和使用。
  2. 修改您以某种方式使用的类型检查器(例如,mypy具有实验性的“插件”系统)
  3. 请修改PEP 484以包括您的新的自定义类型(您可以通过在键入模块repo中打开问题来完成此操作)。


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

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

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