Зображення користувача Леонід Українець.
Леонід Українець
  • Відвідувань: 0
  • Переглядів: 0

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

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

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

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

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. Про це свідчить крапочка після назви об’єкту. Загалом громадяни теж будуть об’єктами певного класу. Але для простоти ілюстрації я використав текстові значення. Насамкінець виводимо на екран привітання від демосу і список його учасників за допомогою функцій, описаних в класі.

Якщо ви помітили помилку, то виділіть фрагмент тексту не більше 20 символів і натисніть Ctrl+Enter
Підписуюсь на новини

Зверніть увагу

Творімо разом сонячну мову Сенсар!

Мова Сенсар – головний інструмент заснування нового світу. З чого почнемо формування словника?

Пряма і точна цитата з Гіперборійської інструкції про здобуття керованої молодості є майже в кожній українській родині. Саме з неї починається вчення Ісуса Хреста про перенародження та вічне життя...

Останні записи

Кращий коментар

Зображення користувача Леонід Українець.
0
Ще не підтримано

Приєднуйтесь до групи Вольники: https://bitbucket.org/willmen/

https://t.me/ETEPHET

Коментарі

Зображення користувача ДЗен ДЗелень.
0
Ще не підтримано

Пайтон, мабуть, краще, ніж пітон, бо другий термін без контексту звучить двозначно.

Хай буде Ща з Тя! І з Мя :)

 

Зображення користувача Миро Продум.
0
Ще не підтримано

Можливо, назву мови краще писати з великої букви?

Пайтон звучить веселіше - адже це нагадування про комедійне шоу, де грають гарні актори. Повна назва шоу - "Літаючий цирк Монті Пайтона". Політ - це класно.

А от пітон - це беземоційний плазун, неспроможний літати. "Не та хворма" :)

Арій Хрестовий каже:
Пайтон, мабуть, краще, ніж пітон, бо другий термін без контексту звучить двозначно.

Освячуйся! Озброюйся! Плодися!

Зображення користувача Леонід Українець.
0
Ще не підтримано

Тоді й ілюстрацію доведеться змінити.

https://t.me/ETEPHET

Зображення користувача Миро Продум.
0
Ще не підтримано

Покищо хай буде ця, а далі побачимо. Ілюстрації мають бути позитивними, красивими і хоч трохи відповідати змісту статті.

Леонід Українець каже:
Тоді й ілюстрацію доведеться змінити.

Освячуйся! Озброюйся! Плодися!

Зображення користувача Ігор Каганець.
0
Ще не підтримано

Пора створювати інфраструктуру розробки. Прошу звернути увагу на такий сервіс як Bitbucket. Почати можна з приватного репозиторія для 5 розробників.

Все, що робиться з власної волі, – добро!

Зображення користувача Леонід Українець.
0
Ще не підтримано

Приєднуйтесь до групи Вольники: https://bitbucket.org/willmen/

https://t.me/ETEPHET

Зображення користувача Миро Продум.
0
Ще не підтримано

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

Леонід Українець каже:
Приєднуйтесь до групи Вольники: <a href="https://bitbucket.org/willmen/" rel="nofollow">https://bitbucket.org/willmen/</a>

Освячуйся! Озброюйся! Плодися!

Зображення користувача Ігор Каганець.
0
Ще не підтримано

Паралельно можна робити сайт "Демос" як CMS з панеллю увімкнення модулів.

Зручна система завантаження та увімкнення модулів з перевіркою їх сумісності реалізована в Elgg.

Все, що робиться з власної волі, – добро!

Зображення користувача Леонід Українець.
0
Ще не підтримано

Оновлення тут: https://repl.it/Bj2V/2

https://t.me/ETEPHET

Зображення користувача Миро Продум.
0
Ще не підтримано

Тепер треба знайти ще одну людину, яка реально долучиться до розробки. Леонід займається "внутрішньою кухнею". Потрібен фахівець, який зробить зручний інтерфейс.

Леонід Українець каже:
Оновлення тут: <a href="https://repl.it/Bj2V/2" rel="nofollow">https://repl.it/Bj2V/2</a>

Освячуйся! Озброюйся! Плодися!

Зображення користувача Миро Продум.
0
Ще не підтримано

Вольники - це група прихильників вільного програмного забезпечення (група за інтересами).

Для розробки Intermarium-online треба створити відповідну групу як проект і долучати до неї тільки тих, хто реально працюватиме над розробкою.

Освячуйся! Озброюйся! Плодися!