Байланысты: Изучаем Python. Программирование игр, визуализация данных, веб-приложения ( PDFDrive )
Глава 9 • Классы
class Dog():
...
my_dog = Dog('willie', 6)
my_dog.sit()
my_dog.roll_over()
Чтобы вызвать метод, укажите экземпляр (в данном случае
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("My dog's name is " + my_dog.name.title() + ".")
print("My dog is " + str(my_dog.age) + " years old.")
my_dog.sit()
print("\nYour dog's name is " + your_dog.name.title() + ".")
print("Your dog is " + str(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
. Вы можете создать сколько
угодно экземпляров одного класса при условии, что эти экземпляры хранятся