Типизация Python: возвращаемый тип с дженериками, такими как Clazz[T], как в Java ClazzPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Типизация Python: возвращаемый тип с дженериками, такими как Clazz[T], как в Java Clazz

Сообщение Anonymous »

Итак, я знаю о типизации 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»