【发布时间】:2020-01-11 23:52:20
【问题描述】:
所以我知道 Python 的 typing.Optional。但我自己写了粗略的PyOptional(代码here),并想将Optional[T]与我的PyOptional结合到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
我想要的伪代码:
def find_user_by_id(id: int) -> PyOptional[User]:
return PyOptional(db.find_user_by_id(id))
目标是让我的 IDE 能够检查预期的返回类型,并且仍然能够在返回的对象上调用我的方法。所以它必须符合 PEP。
【问题讨论】:
标签: python python-3.x generics type-hinting python-typing