您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

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

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

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

from typing import Union, TypeVar, Tuple

T = 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))

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

python 2022/1/1 18:28:46 有179人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶