Пайтон і Демос: перший клас

Розробку програмного-інформаційного комплексу Демоси пропоную здійснити в два етапи. Перший: створити абстрактну модель демосів з їх функціями і властивостями. Другий: розробити інтерфейс взаємодії з моделлю для різних груп користувачів.
 

Для розробки пропоную використати об’єкто-орієнтовану парадигму програмування. Адже все, що нас оточує, можна назвати об’єктами. Об’єкти можна класифікувати за різними ознаками. Тобто об’єднувати в класи. Одну з найдавніших класифікацій розробив Арістотель. Вона актуальна і нині.

Переваги об’єкто-орієнтованого програмування.

1) Легше вдосконалювати код програми при потребі внесення малих змін. Призначення окремих завдань певним методам дозволяє краще структурувати програму.

2) Код стає більш універсальним. Є можливість викликати ті самі методи в різних класах або й програмах.

Подаю короткий зразок, з якого починаємо розробку програмно-інформаційного комплексу (ПІК).

class Demos(object):
   citizens=[]
   def __init__(self, name):
      self.name = name
   def add_citizen(self, citizen_name):
      self.citizens.append(citizen_name)
   def greeting(self):
       print ('Радіймо! Вас вітає демос '+self.name)
   def print_citizens(self):
       print ('Перелік громадян нашого демосу: ')
       for i in range(len(self.citizens)):
           print(self.citizens[i])
demos1=Demos("Вольники")
demos1.add_citizen('Леонід')
demos1.add_citizen('Доброслав')
demos1.greeting()
demos1.print_citizens()

Виконати програму можна тут.

Для тих, хто тільки починає ознайомлення з програмуванням мовою пайтон, поясню. Службове слово class означає, що далі буде назва класу, котрий ми хочемо описати. Наразі він має назву Demos. В дужках після назви міститься назва іного класу, від якого наш клас успадкує певні властивості. Я використав клас object, котрий є стандартним класом для пайтона. Після цього обов’язково двокрапка :, вона відділяє назву класу від його характеристик.

Перша змінна в класі названа citizens. Вона містить перелік громадян демосу. Про те, що це саме перелік, а не окреме значення, свідчить []. Наразі список пустий, з часом ми його наповнимо.

Далі йде оголошення функції: def. Її назва: __init__. Ця функція ініціалізує, іними словами, створює певний демос належний класові Demos. В круглих дужках два параметри: self і name. Перший параметр означатиме власне цей об’єкт класу, а другий - його назву. Після розділового знаку : написані дії, котрі виконує ця функція. Наразі вона просто присвоює об’єктові ім’я, отримане як параметр: self.name = name.

Друга функція def add_citizen(self, citizen_name): теж має два параметри. Другим параметром є ім’я громадянина, котрий приєднався до демосу.

Функція def greeting(self): є привітання, котре буде використовуватись в певних ситуаціях. Службове слово print означає, що на екран буде виведено текст, вказаний в дужках. Фрагмент 'Радіймо! Вас вітає демос ' взято в апострофи. Те, що між ними є конкретно текстом, а не ім’ям якоїсь змінної. Знак + в цьому контексті означає, що до попереднього тексту буде дописано ще текст. Той текст, що містить змінна self.name.

Аналогічно функція def print_citizens(self): видруковує на екран текст print ('Перелік громадян нашого демосу: ')

А ось і цикл for. i - змінна котра містить порядковий номер ітерації. Службове слово in перевіряє чи перебуває число i в діапазоні range, котрий обчислений за допомогою стандартної функції len, котра показує кількість елементів в списку self.citizens. Двокрапка : означає, що далі йде перелік операцій, котрі будуть виконані циклічно.

А саме, вивід на екран почергово усіх учасників демосу зі списку: print(self.citizens[i]). Нагадую, що список називається citizens, а змінна в квадратних дужках - порядковий номер в ньому [i].

На цьому простий клас закінчено. Приступаємо до його використання. Тобто створення певних об’єктів- примірників класу. І використання їх функцій.

Рядок demos1=Demos("Вольники") означає, що змінна змінна demos1 міститиме новостворений об’єкт з назвою Вольники класу Demos. До речі: текстові значення можна брати як в " ", так і в  ' '.

Далі використовуємо функцію add_citizen. А саме, викликаємо її всередині об’єкту demos1. Про це свідчить крапочка після назви об’єкту. Загалом громадяни теж будуть об’єктами певного класу. Але для простоти ілюстрації я використав текстові значення. Насамкінець виводимо на екран привітання від демосу і список його учасників за допомогою функцій, описаних в класі.

Гравець: 
Леонід Українець
 
Форум Підтримати сайт Довідка