小编bob*_*ing的帖子

Python 类型:使用像 Java Clazz<T> 中的 Clazz[T] 这样的泛型返回类型

所以我知道Python的typing.Optional. 但我编写了自己的粗略代码PyOptional此处为代码),并希望Optional[T]与我的PyOptionalto结合起来PyOptional[T]

我目前正在使用 Python 3.7 并尝试扩展typing.Optional.

我的一些PyOptional

class PyOptional:
    T: TypeVar = TypeVar("T")

    def __init__(self, obj: T):
        self.value: Any = obj

    def get(self) -> Optional[T]:
        return self.value

    def or_else(self, default) -> T:
        return self.value or default
Run Code Online (Sandbox Code Playgroud)

我想要的伪代码:

def find_user_by_id(id: int) -> PyOptional[User]:
    return PyOptional(db.find_user_by_id(id))
Run Code Online (Sandbox Code Playgroud)

我的目标是让 IDE 能够检查预期的返回类型,并且仍然能够在返回的对象上调用我的方法。因此它必须符合 PEP 要求。

python generics type-hinting python-3.x python-typing

2
推荐指数
1
解决办法
2457
查看次数