Что такое аннотации типов
В простейшем случае аннотация содержит непосредственно ожидаемый тип. Аннотации для переменных пишут через двоеточие после идентификатора. После этого может идти инициализация значения. Например price: int = 5
Параметры функции аннотируются также, как переменные, а возвращаемое значение указывается после стрелки ->
и до завершающего двоеточия. Например,
def indent_right(s: str, width: int) -> str:.
Важно: аннотация типов не есть то же самое, что статическая типизация.
Oct. 10, 2023, Источник
Пайтон язык с динамической типизацией. Объявляя переменные, мы не обязаны указывать ее тип. Но, чтобы улучить читаемость кода и его поддержку, мы можем дополнительно делать аннотации типов. Аннотации не обрабатываются интерпретатором и никак не влияют на производительность
Аннотации для переменных пишут через двоеточие после идентификатора
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')
Oct. 10, 2023, Источник
Аннотации типов- это синтаксическая особенность, которая позволяет указывать типы переменных, аргументов функций и возвращаемых значений функций в коде. Они не влияют на выполнение программы, но могут быть использованы в качестве средства документирования кода и инструмента статического анализа (например, с помощью инструментов статической типизации, таких как mypy).
Пример использования:
def add(x: int, y: int) -> int:
return x + y
result: int = add(5, 3)
print(result) # Вывод: 8
В этом примере `x: int` и `y: int` являются аннотациями типов для аргументов функции `add`, указывающими, что они должны быть целыми числами. Аннотация `-> int` указывает, что функция `add` должна возвращать целое число. Аннотации типов не являются обязательными. Однако они могут быть полезны для повышения читаемости кода и облегчения его анализа.
Feb. 19, 2024, easyoffer