Ответ
В Python класс — это шаблон или чертеж для создания объектов. Он инкапсулирует данные (атрибуты) и поведение (методы), позволяя создавать структурированный и повторно используемый код.
Пример класса Car:
class Car:
# Конструктор класса: вызывается при создании нового объекта (экземпляра класса)
def __init__(self, make: str, model: str, year: int):
"""Инициализирует новый объект Car."""
self.make = make # Атрибут экземпляра: марка автомобиля
self.model = model # Атрибут экземпляра: модель автомобиля
self.year = year # Атрибут экземпляра: год выпуска
self.mileage = 0 # Атрибут экземпляра: пробег, инициализируется нулем
# Метод класса: определяет поведение объекта
def drive(self, miles: int) -> None:
"""Увеличивает пробег автомобиля на указанное количество миль."""
if miles > 0:
self.mileage += miles
else:
print("Пробег должен быть положительным числом.")
# Метод класса: возвращает информацию об объекте
def get_info(self) -> str:
"""Возвращает строковое представление информации об автомобиле."""
return f"{self.year} {self.make} {self.model}, пробег: {self.mileage} миль"
# Пример использования класса (создание объектов и вызов методов):
# Создание экземпляра класса Car
my_car = Car("Toyota", "Camry", 2020)
# Вызов методов объекта
my_car.drive(150)
my_car.drive(50)
# Получение информации об объекте
print(my_car.get_info()) # Выведет: 2020 Toyota Camry, пробег: 200 миль
# Создание другого экземпляра класса
another_car = Car("Honda", "Civic", 2022)
another_car.drive(300)
print(another_car.get_info()) # Выведет: 2022 Honda Civic, пробег: 300 миль
Ключевые элементы класса Car:
class Car:: Объявление класса с именемCar.__init__(self, ...): Это конструктор класса. Он вызывается автоматически при создании нового объекта и используется для инициализации его атрибутов.self— это ссылка на текущий экземпляр класса.- Атрибуты экземпляра (
self.make,self.model,self.year,self.mileage): Переменные, которые хранят данные, уникальные для каждого объекта класса. Они определяют состояние объекта. - Методы (
drive,get_info): Функции, определенные внутри класса, которые описывают поведение объектов. Они могут изменять состояние объекта или предоставлять информацию о нем. - Аннотации типов (
make: str,-> None): Улучшают читаемость кода и позволяют инструментам статического анализа (например, MyPy) проверять корректность типов, что способствует раннему обнаружению ошибок. - Инкапсуляция: Класс объединяет данные (атрибуты) и методы, работающие с этими данными, в единое целое, скрывая внутреннюю реализацию и предоставляя контролируемый доступ к состоянию объекта через методы.