Пайтон язык с динамической типизацией. Объявляя переменные мы не обязаны указывать ее тип. Но, чтобы улучить читаемость кода и его поддержку, мы можем дополнительно делать аннотации типов. Аннотации не обрабатываются интерпритатором и никак не влияют на производительность
Аннотации для переменных пишут через двоеточие после идентификатора
price: int = 5
Параметры функции аннотируются так же как переменные, а возвращаемое значение указывается после стрелки ->
и до завершающего двоеточия
**def indent_right(s: str, width: int) -> str:
return " " * (max(0, width - len(s))) + s**
Если же функция никогда не возвращает управление (например, как sys.exit
), следует использовать аннотацию NoReturn
:
def forever() -> NoReturn:
while True:
pass
Для полей класса аннотации должны быть указаны явно при определении класса.
class Book:
title: str
author: str
def __init__(self, title: str, author: str) -> None:
self.title = title
self.author = author
b: Book = Book(title='Fahrenheit 451', author='Bradbury')