Аннотации Python, представленные в Python 3.x, позволяют добавлять метаданные к функциям, переменным и классам. Они служат формой документации и могут использоваться инструментами и платформами для предоставления дополнительной информации о коде. В этой статье мы рассмотрим различные методы использования аннотаций в Python, а также приведем примеры кода, иллюстрирующие их использование.
- Аннотации функций:
Аннотации функций позволяют указать ожидаемые типы аргументов функции и возвращаемых значений. Вот пример:
def add(a: int, b: int) -> int:
return a + b
В приведенном выше фрагменте кода аннотации a: int
, b: int
и -> int
указывают, что функция add
ожидает два целочисленных аргумента и возвращает целое число.
- Аннотации классов.
Аннотации также можно применять к определениям классов. Они могут указывать типы переменных экземпляра и переменных уровня класса. Вот пример:
class Person:
name: str
age: int
def __init__(self, name: str, age: int):
self.name = name
self.age = age
В приведенном выше фрагменте кода аннотации name: str
и age: int
указывают, что класс Person
имеет переменные экземпляра name
и age
строкового и целого типа соответственно.
- Аннотации переменных:
Аннотации можно использовать для указания типа переменных. Вот пример:
x: int = 10
В приведенном выше фрагменте кода аннотация x: int
указывает, что переменная x
имеет целочисленный тип и изначально ей присвоено значение 10.
- Аннотации со значениями по умолчанию.
Вы можете комбинировать аннотации со значениями по умолчанию в определениях функций и переменных. Вот пример:
def greet(name: str = "John") -> str:
return f"Hello, {name}!"
print(greet()) # Output: Hello, John!
print(greet("Alice")) # Output: Hello, Alice!
В приведенном выше фрагменте кода аннотация name: str = "John"
указывает, что функция greet
ожидает строковый аргумент, который по умолчанию имеет значение «Джон», если не указан.
<ол старт="5">
Существует несколько сторонних библиотек, которые предоставляют дополнительные функции и утилиты для работы с аннотациями. Одной из таких библиотек является
typing
, которая предоставляет набор классов и функций для определения типов и работы с ними. Вот пример:from typing import List
def process_items(items: List[str]) -> None:
for item in items:
print(item)
process_items(["apple", "banana", "cherry"])
В приведенном выше фрагменте кода аннотация items: List[str]
указывает, что функция process_items
ожидает список строк в качестве аргумента.
Аннотации Python предоставляют мощный способ добавления метаданных и подсказок по типам в ваш код. Они улучшают читаемость кода и могут использоваться инструментами и платформами для различных целей. Эффективно используя аннотации, вы можете улучшить качество кода и удобство обслуживания в своих проектах Python.