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

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

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

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

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

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

Підписуюсь на новини

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

Творимо!

Наш розвиток у жовтні 2021: теологічна конференція спільноти НО, люди і тварини, оновлення сайту

У жовтні маємо остаточно завершити тему Homo intelis, опублікувати виступи учасників 41 конференції, оновити сайт і продовжити роботу над новою редакцією книги «Пшениця без куколю» (2022).

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

Коментарі

Зображення користувача ДЗен ДЗелень.

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

Зображення користувача Ігор Каганець.

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

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

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

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

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

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

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

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

Зображення користувача Ігор Каганець.

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

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

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

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

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

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

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

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

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

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

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

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

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