Docstring - строка документирования.
Вызывается:
help(abs)
abs.__doc__
В языках со строгой типизация (Python) с объектами определенных типов можно производить только ограниченный набор действий.
~={magenta}В Python динамическая строгая типизация.=~
numbers: list = [] # переменная numbers хранит список
languages: dict = {} # переменная languages хранит словарь
temperature: tuple = (1, 2, 3) # переменная temperature хранит кортеж
letters: set = set('hello') # переменная letters хранит множество
Для указания нескольких типов данных можно использовать ~={magenta}Union=~
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.
from typing import Optional
num: Optional[int] = None
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=~ указывает на любой тип данных.
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
from typing import Tuple
# Кортеж может содержать элементы разных типов
words: Tuple[str, int] = ("hello", 300)
# Кортеж может содержать неизвестное количество элементов типа str
words: Tuple[str, ...] = ("hello", "world", '!')
foo
принимает один аргумент bar
, он должен являться словарем, у которого ключи могут быть либо строкой либо целым числом, а значения могут быть либо пустыми (тип None
) , либо строкой
from typing import Dict, Optional, Union
def foo(bar: Dict[Union[str, int], Optional[str]]) -> bool:
return True
~={green}Аннотации в Python с версии 3.9=~
# Замена 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