Вопрос23
Осталось:

Что такое классы и объекты в Python?

Образцовый ответ

Показывать ответ по умолчанию

Класс — это шаблон (чертёж) для создания объектов. Объект — это конкретный экземпляр класса.

Определение класса:

class Dog:
    # Атрибут класса (общий для всех экземпляров)
    species = "Canis familiaris"

    # Конструктор — вызывается при создании объекта
    def __init__(self, name, age):
        # Атрибуты экземпляра (уникальны для каждого объекта)
        self.name = name
        self.age = age

    # Метод экземпляра
    def bark(self):
        return f"{self.name} говорит: Гав!"

Создание объектов:

dog1 = Dog("Бобик", 3)
dog2 = Dog("Шарик", 5)

print(dog1.name)      # Бобик
print(dog2.bark())    # Шарик говорит: Гав!
print(dog1.species)   # Canis familiaris

self:

  • self — ссылка на текущий экземпляр класса.
  • Передаётся автоматически при вызове метода.
  • Через self доступны атрибуты и методы объекта.

Атрибуты класса vs экземпляра:

class Counter:
    count = 0  # Атрибут класса — общий для всех

    def __init__(self):
        Counter.count += 1  # Изменяем атрибут класса
        self.id = Counter.count  # Атрибут экземпляра

c1 = Counter()
c2 = Counter()
print(Counter.count)  # 2
print(c1.id, c2.id)   # 1 2