Глава 9 • Классы
Чтобы вызвать метод, укажите экземпляр (в данном случае
my_dog
) и вызываемый
метод, разделив их точкой. В ходе обработки
my_dog.sit()
Python ищет метод
sit()
в классе
Dog
и выполняет его код. Строка
my_dog.roll_over()
интерпретируется
аналогичным образом.
Теперь экземпляр послушно выполняет полученные команды:
Willie is now sitting.
Willie rolled over!
Это очень полезный синтаксис. Если атрибутам и методам были присвоены содер-
жательные имена (например,
name
,
age
,
sit()
и
roll_over()
), разработчик сможет
легко понять, что делает блок кода — даже если он видит этот блок впервые.
Создание нескольких экземпляров
На основе класса можно создать столько экземпляров, сколько вам потребуется.
Создадим второй экземпляр
Dog
с именем
your_dog
:
class Dog():
...
my_dog = Dog('willie', 6)
your_dog = Dog('lucy', 3)
print(f"My dog's name is {my_dog.name}.")
print(f"My dog is {my_dog.age} years old.")
my_dog.sit()
print(f"\nYour dog's name is {your_dog.name}.")
print(f"Your dog is {your_dog.age} years old.")
your_dog.sit()
В этом примере создаются два экземпляра с именами
Willie
и
Lucy
. Каждый эк-
земпляр обладает своим набором атрибутов и способен выполнять действия из
общего набора:
My dog's name is Willie.
My dog is 6 years old.
Willie is now sitting.
Your dog's name is Lucy.
Your dog is 3 years old.
Lucy is now sitting.
Даже если второй собаке будет назначено то же имя и возраст, Python все равно
создаст отдельный экземпляр класса
Dog
. Вы можете создать сколько угодно эк-
земпляров одного класса при условии, что эти экземпляры хранятся в переменных
с разными именами или занимают разные позиции в списке либо словаре.