PEP 484: a "NewType" constructor

Here's one more thing we'd like to add to PEP 484. The description is best gleaned from the issue, in particular https://github.com/python/mypy/issues/1284#issuecomment-199021176 and following (we're going with option (A)). Really brief example: from typing import NewType UserId = NewType('UserId', int) Now to the type checker UserId is a new type that's compatible with int, but converting an int to a UserId requires a special cast form, UserId(x). At runtime UserId instances are just ints (not a subclass!) and UserId() is a dummy function that just returns its argument. For use cases see the issue. Also send feedback there please. -- --Guido van Rossum (python.org/~guido)

Sorry, for PEP feedback it's best to use this issue in the typing tracker: https://github.com/python/typing/issues/189 (the issue I linked to was in the mypy tracker). On Mon, Mar 21, 2016 at 9:15 AM, Guido van Rossum <guido@python.org> wrote:
Here's one more thing we'd like to add to PEP 484. The description is best gleaned from the issue, in particular https://github.com/python/mypy/issues/1284#issuecomment-199021176 and following (we're going with option (A)).
Really brief example:
from typing import NewType UserId = NewType('UserId', int)
Now to the type checker UserId is a new type that's compatible with int, but converting an int to a UserId requires a special cast form, UserId(x). At runtime UserId instances are just ints (not a subclass!) and UserId() is a dummy function that just returns its argument.
For use cases see the issue. Also send feedback there please.
-- --Guido van Rossum (python.org/~guido)
-- --Guido van Rossum (python.org/~guido)
participants (1)
-
Guido van Rossum