Type annotations in Python are a method of indicating the expected data type of a variable, function parameter, or return value. They were introduced in Python 3.5 as a part of PEP 484, and are used mainly for static type checking purposes.
While Python remains a dynamically-typed language, type annotations can help with readability and debugging of code. They do not enforce a variable to hold a value of a particular type, nor do they provide any performance improvement.
For example, a function with type annotations could look like this:
```
def greet(name: str) -> str:
return ‘Hello, ‘ + name
```
In this example, `name: str` indicates that the function argument `name` should be of type `str` (string), and `-> str` indicates that the function should return a string. The actual type checking based on these annotations can be performed using separate tools such as `mypy`.