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



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

180
Глава 9 • Классы
ПРИМЕЧАНИЕ
Подобные методы управляют обновлением внутренних значений эк-
земпляров (таких, как показания одометра), однако любой пользователь, имеющий до-
ступ к программному коду, сможет напрямую задать атрибуту любое значение . Эффек-
тивная схема безопасности должна уделять особое внимание таким подробностям, не 
ограничиваясь простейшими проверками .
УПРАЖНЕНИЯ
9.4. Посетители:
начните с программы из упражнения 9.1 (с. 175). Добавьте атрибут 
number_served
со значением по умолчанию 
0
; он представляет количество обслуженных 
посетителей. Создайте экземпляр с именем 
restaurant
. Выведите значение 
number_served

потом измените и выведите снова.
Добавьте метод с именем 
set_number_served()
, позволяющий задать количество обслужен-
ных посетителей. Вызовите метод с новым числом, снова выведите значение.
Добавьте метод с именем 
increment_number_served()
, который увеличивает количество об-
служенных посетителей на заданную величину. Вызовите этот метод с любым числом, ко-
торое могло бы представлять количество обслуженных клиентов, — скажем, за один день.
9.5. Попытки входа:
добавьте атрибут 
login_attempts
в класс 
User
из упражнения 9.3 
(с. 175). Напишите метод 
increment_login_attempts()
, увеличивающий значение 
login_
attempts
на 
1
. Напишите другой метод с именем 
reset_login_attempts()
, обнуляющий зна-
чение 
login_attempts
.
Создайте экземпляр класса 
User
и вызовите 
increment_login_attempts()
несколько раз. 
Выведите значение 
login_attempts
, чтобы убедиться в том, что значение было измене-
но правильно, а затем вызовите 
reset_login_attempts()
. Снова выведите 
login_attempts
и убедитесь в том, что значение обнулилось.
Наследование
Работа над новым классом не обязана начинаться с нуля. Если класс, который 
вы пишете, представляет собой специализированную версию ранее написанного 
класса, вы можете воспользоваться 
наследованием
. Один класс, 
наследующий
от 
другого, автоматически получает все атрибуты и методы первого класса. Исходный 
класс называется 
родителем
, а новый класс — 
потомком
. Класс-потомок наследует 
атрибуты и методы родителя, но при этом также может определять собственные 
атрибуты и методы.
Метод __init__() класса-потомка
При написании нового класса на базе существующего класса часто приходится вы-
зывать метод 
__init__()
класса-родителя. При этом происходит инициализация 
любых атрибутов, определенных в методе 
__init__()
родителя, и эти атрибуты 
становятся доступными для класса-потомка.
Например, попробуем построить модель электромобиля. Электромобиль пред-
ставляет собой специализированную разновидность автомобиля, поэтому новый 
класс 
ElectricCar
можно создать на базе класса 
Car
, написанного ранее. Тогда 


Наследование
181
нам останется добавить в него код атрибутов и поведения, относящегося только 
к электромобилям.
Начнем с создания простой версии класса 
ElectricCar
, который делает все, что 
делает класс 
Car
:


Достарыңызбен бөлісу:
1   ...   125   126   127   128   129   130   131   132   ...   334




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

    Басты бет