Классы
Пишем свой первый класс — чертёж, по которому Python будет создавать объекты.
Классы
Определим свой собственный класс — чертёж для объекта «Собака»:
class Sobaka:
def __init__(self, klichka, vozrast):
self.klichka = klichka
self.vozrast = vozrast
rex = Sobaka("Рекс", 3)
print(rex.klichka, rex.vozrast)
__init__ — специальный метод, который автоматически
выполняется при создании объекта (Sobaka("Рекс", 3)) и настраивает
его начальное состояние. self — ссылка на сам создаваемый объект;
Python передаёт её автоматически, и первым параметром __init__
(и любого другого метода) она должна быть всегда. Подробно, что здесь происходит «под
капотом», разберём в разделах 14.5-14.6 — сейчас достаточно рабочей модели.
type(rex), ему самому можно назначать атрибуты, его можно передать в переменную. Пользуйтесь аналогией, чтобы запомнить «один чертёж → много экземпляров», но не воспринимайте её буквально дальше этого.Объекты со своими значениями
Каждый объект хранит свои собственные значения атрибутов, независимо от других объектов того же класса:
rex = Sobaka("Рекс", 3)
sharik = Sobaka("Шарик", 5)
print(rex.klichka, rex.vozrast) # Рекс 3
print(sharik.klichka, sharik.vozrast) # Шарик 5 — независимо от rex
Один класс — сколько угодно объектов, и у каждого своё, независимое состояние. Именно это отличает объект от простого словаря с похожими ключами: объект принадлежит своему классу и получает через него доступ к общим методам (раздел 14.3).