Коли ми складаємо програму, ми намагаємось змоделювати певну реальну ситуацію або явище (розв‘язування рівняння, хід гри, створення зображення тощо).
В загальному випадку потрібно виконати такі кроки:
1 — виявити об'єкти, якими буде маніпулювати наша програма;
2 — описати властивості об'єктів;
3 — описати методи (обмежений набір дій об‘єкта);
4 — запрограмувати обробку подій (що об'єкт має зробити у відповідь на подію).
1 — виявити об'єкти, якими буде маніпулювати наша програма;
2 — описати властивості об'єктів;
3 — описати методи (обмежений набір дій об‘єкта);
4 — запрограмувати обробку подій (що об'єкт має зробити у відповідь на подію).
Поняття події
Подія — це вплив на об’єкт, що відбувається в програмі.
Для того, щоб програма відреагувала на подію, слід створити обробник події – окремий блок програмного коду, який виконується при настанні події, з якою він пов’язаний.
У відповідь на події об'єкт виконує метод, тобто подією ми будемо вважати виклик методу, що описаний у класі.
Опис методів
Методи — це дії, що можуть виконувати об’єкти даного класу.
Якщо умовно об’єкти вважати іменниками, то їхні методи — дієсловами. Якщо уявити об’єкт як окрему річ, то його методи визначають, як він взаємодіє з іншими речами.
Опис методу:
def назва_методу(self, <перелік параметрів>):
def назва_методу(self, <перелік параметрів>):
<тіло методу>
Замість параметра self у разі виконання методу підставляється ім’я конкретного об’єкта.
Опишемо клас Dog. Відомо, що більшість собак вміють подавати голос за командою. Включимо в клас Dog дію «подавати голос».
class Dog():
def __init__(self, name):
self.name = name
def voісe(self): # Собака подає голос за командою
print(self.name, ' гавкає. Гав-гав!')
Екземпляри класу Dog, які будуть створені в програмі, зможуть викликати метод voісe().
Виклик методів
Виклик методу для конкретного об’єкта має вигляд:
об’єкт.назва_методу(<перелік значень>)
об’єкт.назва_методу(<перелік значень>)
Створимо екземпляр класу Dog і викличемо для нього метод voісe():
my_dog = Dog('Сірко')
my_dog.voісe()
Під час обробки команди my_dog.voісe() середовище Python шукає метод voісe() у класі Dog і виконує його код.
Об’єкт виконує команди. Отримуємо результат виконання дії:
Сірко гавкає. Гав-гав!
Об’єкт виконує команди. Отримуємо результат виконання дії:
Сірко гавкає. Гав-гав!
Можна викликати метод і передавати йому деяке значення параметра. Змінна, яка прийматиме значення параметра, має знаходитися в списку параметрів у заголовку метода.
Приклад:
При виклику методу передається значення для змінної а:
class Dog():
def __init__(self, name):
self.name = name
def voісe(self, а):
for i in range(a): print(self.name, ' гавкає. Гав-гав!')
def __init__(self, name):
self.name = name
def voісe(self, а):
for i in range(a): print(self.name, ' гавкає. Гав-гав!')
my_dog = Dog('Сірко')
my_dog.voісe(3)
Оператор print в тілі метода voісe виконається 3 рази:
Сірко гавкає. Гав-гав!
Сірко гавкає. Гав-гав!
Сірко гавкає. Гав-гав!
Методи можуть змінювати значення властивостей (атрибутів) об’єкта, виконувати інші дії над об’єктами.
Приклад:
Створимо клас Car(). Метод __init__() класу Car() має містити атрибути для збереження інформації про кількість пального (fuel) та шлях, пройдений автомобілем (mileage). Додамо до класу метод vitr(self), який зменшує значення атрибута fuel, і метод zapr(self) (заправка), який збільшує значення атрибута fuel на 10 л.
class Car().
def __init__(self, mileage, fuel):
self.mileage = mileage
self.fuel = fuel
def zapr(self): #Запрaвка
self.fuel=self.fuel+10
print(" Запрaвка ")
def vitr(self): #Витрата пального на 50 км
self.fuel=self.fuel - 3
print(" Залишилось пального ", car1.fuel)
car1 = Car(0, 0) # створено екземпляр car1 класу Car() із параметрами 0, 0.
def __init__(self, mileage, fuel):
self.mileage = mileage
self.fuel = fuel
def zapr(self): #Запрaвка
self.fuel=self.fuel+10
print(" Запрaвка ")
def vitr(self): #Витрата пального на 50 км
self.fuel=self.fuel - 3
print(" Залишилось пального ", car1.fuel)
car1 = Car(0, 0) # створено екземпляр car1 класу Car() із параметрами 0, 0.
print("Пробіг ", car1.mileage)
car1.zapr() # «заправимо» авто
a = int( input('Відстань?')) # введення значення відстані, яку потрібно проїхати
car1.zapr() # «заправимо» авто
a = int( input('Відстань?')) # введення значення відстані, яку потрібно проїхати
while a > 0:
print ('ЇDEMО!')
a = a -50 # зменшити значення відстані на 50 км
print ('ЇDEMО!')
a = a -50 # зменшити значення відстані на 50 км
car1.vitr() # викликати для об’єкта car1 метод vitr()
if car1.fuel<3: # якщо пального залишається менше за 3 л,
car1.zapr() # викликати для car1 метод zapr().
print('FINISH!')
car1.zapr() # викликати для car1 метод zapr().
print('FINISH!')
Джерела:
Інформатика : підруч. для 6 кл. закл. загал. серед. освіти / [О. О. Бондаренко, В. В. Ластовецький, О. П. Пилипчук, Є. А. Шестопалов]. — Харків : Вид-во «Ранок», 2019