How to use type hints in python 3.6?

Type hints are entirely meant to be ignored by the Python runtime, and are checked only by 3rd party tools like mypy and Pycharm’s integrated checker. There are also a variety of lesser known 3rd party tools that do typechecking at either compile time or runtime using type annotations, but most people use mypy or Pycharm’s integrated checker AFAIK.

In fact, I actually doubt that typechecking will ever be integrated into Python proper in the foreseable future — see the ‘non-goals’ section of PEP 484 (which introduced type annotations) and PEP 526 (which introduced variable annotations), as well as Guido’s comments here.

I’d personally be happy with type checking being more strongly integrated with Python, but it doesn’t seem the Python community at large is ready or willing for such a change.

The latest version of mypy should understand both the Python 3.6 variable annotation syntax and the comment-style syntax. In fact, variable annotations were basically Guido’s idea in the first place (Guido is currently a part of the mypy team) — basically, support for type annotations in mypy and in Python was developed pretty much simultaneously.

Leave a Comment