所以我知道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 要求。