【问题标题】:How can I create my own "parameterized" type in Python (like `Optional[T]`)?如何在 Python 中创建自己的“参数化”类型(如 `Optional[T]`)?
【发布时间】:2023-04-03 12:47:02
【问题描述】:

我想在 Python 中创建自己的参数化类型以用于类型提示:

class MaybeWrapped:
    # magic goes here

T = TypeVar('T')

assert MaybeWrapped[T] == Union[T, Tuple[T]]

别介意人为的例子;我该如何实施?我查看了 Union 和 Optional 的源代码,但它看起来像是一些我想避免的相当低级的黑客行为。

文档中唯一的建议来自example re-implementation of Mapping[KT,VT] that inherits from Generic。但这个例子更多的是关于 __getitem__ 方法而不是类本身。

【问题讨论】:

    标签:
    python
    python-3.x
    generics
    metaclass
    type-hinting