Итак, я знаю о типизации Python. Необязательно. Но я написал свой собственный примитивный PyOptional (код здесь) и хотел бы объединить Необязательный[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.
Подробнее здесь:
https://stackoverflow.com/questions/578 ... ava-clazzt