М97 Изучаем Python: программирование игр, визуализация данных, веб-приложения



Pdf көрінісі
бет125/334
Дата18.10.2023
өлшемі6,19 Mb.
#186390
1   ...   121   122   123   124   125   126   127   128   ...   334
Байланысты:
Изучаем Python

атрибутами
.
В классе 
Dog
также определяются два метода: 
sit()
и 
roll_over()

. Так как 
этим методам не нужна дополнительная информация (кличка или возраст), они 
определяются с единственным параметром 
self
. Экземпляры, которые будут 
созданы позднее, смогут вызывать эти методы. Пока методы 
sit()
и 
roll_over()
ограничиваются простым выводом сообщения о том, что собака садится или 
перекатывается. Тем не менее концепцию легко расширить для практического 
применения: если бы этот класс был частью компьютерной игры, то эти методы 
вполне могли бы содержать код для создания анимации садящейся или пере-
катывающейся собаки. А если бы класс был написан для управления роботом, 
то методы могли бы управлять механизмами, заставляющими робота-собаку 
выполнить соответствующую команду.
Создание экземпляра класса
Считайте, что класс — это своего рода инструкция по созданию экземпляров. Со-
ответственно класс 
Dog
— инструкция по созданию экземпляров, представляющих 
конкретных собак.


Создание и использование класса
173
Создадим экземпляр, представляющий конкретную собаку:
class Dog():
...

my_dog = Dog('willie', 6)

print(f"My dog's name is {my_dog.name}.")

print(f"My dog is {my_dog.age} years old.")
Использованный в данном случае класс 
Dog
был написан в предыдущем примере. 
В точке 

мы приказываем Python создать экземпляр собаки с кличкой 
'willie'
и возрастом 6 лет. В процессе обработки этой строки Python вызывает метод 
__init__()
класса 
Dog
с аргументами 
'willie'
и 6. Метод 
__init__()
создает экзем-
пляр, представляющий конкретную собаку, и присваивает его атрибутам 
name
и 
age
переданные значения. Затем Python возвращает экземпляр, представляющий собаку. 
Этот экземпляр сохраняется в переменной 
my_dog
. Здесь нелишне вспомнить согла-
шения по записи имен: обычно считается, что имя, начинающееся с символа верхнего 
регистра (например, 
Dog
), обозначает класс, а имя, записанное в нижнем регистре 
(например, 
my_dog
), обозначает отдельный экземпляр, созданный на базе класса.
Обращение к атрибутам
Для обращения к атрибутам экземпляра используется «точечная» запись. В стро-
ке 

мы обращаемся к значению атрибута 
name
экземпляра 
my_dog
:
my_dog.name
Точечная запись часто используется в Python. Этот синтаксис показывает, как 
Python ищет значения атрибутов. В данном случае Python обращается к экзем-
пляру 
my_dog
и ищет атрибут 
name
, связанный с экземпляром 
my_dog
. Это тот же 
атрибут, который обозначался 
self.name
в классе 
Dog
. В точке 

тот же прием ис-
пользуется для работы с атрибутом 
age
.
Пример выводит известную информацию о 
my_dog
:
My dog's name is Willie.
My dog is 6 years old.
Вызов методов
После создания экземпляра на основе класса 
Dog
можно применять точечную 
запись для вызова любых методов, определенных в 
Dog
:
class Dog():
...
my_dog = Dog('willie', 6)
my_dog.sit()
my_dog.roll_over()


174

Достарыңызбен бөлісу:
1   ...   121   122   123   124   125   126   127   128   ...   334




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет