Docstring - строка документирования.

Вызывается:
```python
help(abs)
abs.__doc__
```
В языках со строгой типизация (Python) с объектами определенных типов можно производить только ограниченный набор действий.

~={magenta}В Python динамическая строгая типизация.=~

<h5>Аннотация типов в Python</h5>
```python
numbers: list = []  # переменная numbers хранит список
languages: dict = {}  # переменная languages хранит словарь
temperature: tuple = (1, 2, 3)  # переменная temperature хранит кортеж
letters: set = set('hello')  # переменная letters хранит множество
```
Для указания нескольких типов данных можно использовать ~={magenta}Union=~
```python
from typing import Union

def add_numbers(a: Union[int, float], b: Union[int, float]) -> Union[int, float]:
	return a + b

param: int | float | str
```

Можно использовать ~={magenta}Optional=~. В данном случае указывается, что список может быть None.

```python
from typing import Optional

num: Optional[int] = None
```

```python
def append_to_list(value, my_list: Optional[list] = None):
    if my_list is None:
        my_list = []
    my_list.append(value)
    return my_list
```

Объект ~={magenta}Any=~ указывает на любой тип данных.

```python
from typing import Optional, Any, List

def append_to_list(value: Any, my_list: Optional[list] = None) -> List[Any]:
    if my_list is None:
        my_list = []
    my_list.append(value)
    return my_list
```

<h5>Аннотация элементов кортежа</h5>
```python
from typing import Tuple

# Кортеж может содержать элементы разных типов
words: Tuple[str, int] = ("hello", 300)

# Кортеж может содержать неизвестное количество элементов типа str
words: Tuple[str, ...] = ("hello", "world", '!')
```
<h5>Аннотация словарей</h5>
Здесь функция `foo` принимает один аргумент `bar`, он должен являться словарем, у которого ключи могут быть либо строкой либо целым числом, а значения могут быть либо пустыми (тип `None`) , либо строкой

```python
from typing import Dict, Optional, Union

def foo(bar: Dict[Union[str, int], Optional[str]]) -> bool:
   return True
```

~={green}Аннотации в Python с версии 3.9=~
```python

# Замена typing
word: list[str] = ['hello', 'world']
numbers: list[float] = [1.1, 3.0, 4.5]
letters: set[str] = set('hello')
digits: frozenset[int] = frozenset([1, 2, 2, 1])

# Замена Union
param: int | float | bool

# Замена Optional
param: int | None = None
word: str | None = None

# Аннотация словарей
person: dict[str, str] = { "first_name": "John", "last_name": "Doe"}

# Аннотация кортежей
words: tuple[str, int] = ("hello", 300)

#
def foo(bar: dict[str | int, str | None]) -> bool:
   return True
```