Не используется в аннотациях, являются строительным блоком для объявления типов.
Изменено в версии 3.10: typing.NewType
теперь является классом, а не функцией. При вызове NewType
вместо обычной функции возникают некоторые дополнительные затраты времени выполнения. В версии Python 3.11.0 дополнительные затраты времени будут снижены.
from typing import NewType UserId = NewType('T', type)
T
- подтип основного типа,type
- основной тип.Вспомогательный класс NewType
модуля typing
предназначен для указания отдельного подтипа, основного типа.
Подробнее читайте в введении в модуль typing
, а именно в подразделе "Аннотация отдельных подтипов typing.NewType
".
Во время выполнения typing.NewType
возвращает объект, который возвращает свой аргумент при вызове.
UserId = NewType('UserId', int) first_user = UserId(1)