Python is dynamically typed. We do not have to specify the type of a variable or function parameter, or a function return value.
Annotations allow us to (optionally) do that.
This is a function without annotations:
def increment(n): return n + 1
This is the same function with annotations:
def increment(n: int) -> int: return n + 1
You can also annotate variables:
count: int = 0
Python will ignore those annotations. A separate tool called
mypy can be run standalone, or integrated by IDE like VS Code or PyCharm to automatically check for type errors statically, while you are coding, and it will help you catch type mismatch bugs before even running the code.
A great help especially when your software becomes large and you need to refactor your code.
Download my free Python Handbook