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

Українець

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

https://ar25.org/node/32743

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

Image

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

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

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

Останні записи
Опубліковано Арій 5 February, 2016 - 20:01
Пайтон, мабуть, краще, ніж пітон, бо другий термін без контексту звучить двозначно.
Опубліковано Миро 5 February, 2016 - 22:35
Можливо, назву мови краще писати з великої букви? Пайтон звучить веселіше - адже це нагадування про комедійне шоу, де грають гарні актори. Повна назва шоу - "Літаючий цирк Монті Пайтона". Політ - це класно. А от пітон - це беземоційний плазун, неспроможний літати. "Не та хворма" :)

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

Опубліковано Українець 6 February, 2016 - 09:20
Тоді й ілюстрацію доведеться змінити.
Опубліковано Миро 6 February, 2016 - 14:20
Покищо хай буде ця, а далі побачимо. Ілюстрації мають бути позитивними, красивими і хоч трохи відповідати змісту статті.

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

Опубліковано Ігор Каганець 8 February, 2016 - 10:49
Пора створювати інфраструктуру розробки. Прошу звернути увагу на такий сервіс як Bitbucket. Почати можна з приватного репозиторія для 5 розробників.
Опубліковано Українець 12 February, 2016 - 09:11
Приєднуйтесь до групи Вольники: https://bitbucket.org/willmen/
Опубліковано Миро 13 February, 2016 - 16:22
Вольники - це група на нашому сайті. А бітбакет - це тільки для тих, хто має достатню кваліфікацію і реально долучився до розробки.

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

Опубліковано Ігор Каганець 8 February, 2016 - 11:04
Паралельно можна робити сайт "Демос" як CMS з панеллю увімкнення модулів. Зручна система завантаження та увімкнення модулів з перевіркою їх сумісності реалізована в Elgg.
Опубліковано Українець 12 February, 2016 - 08:55
Оновлення тут: https://repl.it/Bj2V/2
Опубліковано Миро 12 February, 2016 - 10:36
Тепер треба знайти ще одну людину, яка реально долучиться до розробки. Леонід займається "внутрішньою кухнею". Потрібен фахівець, який зробить зручний інтерфейс.

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

Опубліковано Миро 13 February, 2016 - 17:10
Вольники - це група прихильників вільного програмного забезпечення (група за інтересами). Для розробки Intermarium-online треба створити відповідну групу як проект і долучати до неї тільки тих, хто реально працюватиме над розробкою.
Audio file
/sites/default/files/radio/klavdia_petrivna_-_ya_tobi_brehala.mp3
Audio file
/sites/default/files/radio/iran_zbagachuye_uran_-_sasha_boole.mp3
Audio file
/sites/default/files/radio/zwyntar_-_ne_doviryay_smertnym.mp3
Audio file
/sites/default/files/radio/klavdia_petrivna_-_sonce_zhara.mp3
Audio file
/sites/default/files/radio/klavdia_petrivna_-_znaydy_mene.mp3
Audio file
/sites/default/files/tayina_ukrayiny.mp3
Audio file
/sites/default/files/radio/zwyntar_-_choven.mp3
Audio file
/sites/default/files/radio/ruslana-ostannya_poema.mp3
Audio file
/sites/default/files/radio/bozhichi-ja_ptychka-nevelychka-kant.mp3
Audio file
/sites/default/files/radio/2.slipa_dytyna.mp3
Audio file
/sites/default/files/radio/zlata_ognevich_-_yangol.mp3
Audio file
/sites/default/files/sergius_iii_-_maty_govoryla_ukrayinskoyu_my_mother_told_me_ukrainian_version_ac_valhalla_song.mp3
Audio file
/sites/default/files/radio/oy_yak_zhe_bulo_izprezhdy.mp3
Audio file
/sites/default/files/radio/02_kolir_nochi_-_dva_shlyahy.mp3
Audio file
/sites/default/files/radio/05_kolir_nochi_-_slava_ukrayini.mp3
Audio file
/sites/default/files/radio/zwyntar_-_na_boloti.mp3
Audio file
/sites/default/files/radio/oc_feat._bangi_hep_-_ziyde_sonce.mp3
Audio file
/sites/default/files/radio/torban_-_oy_yak_zhe_bulo.mp3
Audio file
/sites/default/files/radio/zwyntar_-_dzhonni.mp3
Audio file
/sites/default/files/radio/harcyzy_-_lebedi_2020.mp3
Audio file
/sites/default/files/radio/oleksa_mikolajchuk_ta_viktor_pashnik_-_sonce-zori.mp3
Audio file
/sites/default/files/zwyntar_-_gospel.mp3
Audio file
/sites/default/files/radio/angy_kreyda_-_vrazhe.mp3
Audio file
/sites/default/files/tnmk_-_ivo_bobul_1.mp3
Audio file
/sites/default/files/radio/hrystyna-solovij-buty-lyudmy.mp3
Audio file
/sites/default/files/karta_svitu_-_kryla.mp3
Audio file
/sites/default/files/radio/kalush_feat.skofka-dodomu_kaver_victoria_niro.mp3
Audio file
/sites/default/files/radio/kolir_nochi_-_korabli_demo_2013.mp3
Audio file
/sites/default/files/vopli_vidoplyasova_-_yura.mp3
Audio file
/sites/default/files/radio/de_tvoya_liniya.mp3
Audio file
/sites/default/files/trans-former-kalina.mp3
Audio file
/sites/default/files/radio/kozak_system_-_poday_zbroyu.mp3
Audio file
/sites/default/files/02_-_party_na_prikarpatti.mp3
Audio file
/sites/default/files/folkteatr_ostapa_stahiva._pisni_upa._marshyruyut_vzhe_povstanci.mp3
Audio file
/sites/default/files/tavro_-_fashist_2.mp3
Audio file
/sites/default/files/karchata_folknery.mp3
Audio file
/sites/default/files/karna-gucul-metal_2017.mp3
Audio file
/sites/default/files/kazka_-_plakala.mp3
Audio file
/sites/default/files/maxima_-_u_rayu.mp3
Audio file
/sites/default/files/radio/maxima_-_zolota_y_nebesna_zhinka.mp3
Audio file
/sites/default/files/maxima_-_zyma_vesna_lito_osin.mp3
Audio file
/sites/default/files/the_doox_-_gopaka.mp3
Audio file
/sites/default/files/radio/the_doox_-_pid_borom.mp3
Audio file
/sites/default/files/diana_bigun-moya_zemlya.mp3
Audio file
/sites/default/files/radio/4_koly_vona.mp3
Audio file
/sites/default/files/meri_-_ya_z_ukrayiny.mp3
Audio file
/sites/default/files/radio/vidverto_-_borotba.mp3
Audio file
/sites/default/files/14_sosonochka.mp3
Audio file
/sites/default/files/radio/drevo_tak_kosyv_batko.mp3
Audio file
/sites/default/files/the_doox_-_rusalochky.mp3
Audio file
/sites/default/files/the_doox_-_ne_vidpuskay.mp3
Audio file
/sites/default/files/radio/the_doox_-_viter_z_polya.mp3
Audio file
/sites/default/files/radio/13_folknery_-_vyplyvalo_utenia.mp3
Audio file
/sites/default/files/taruta_zberemosya_rode.mp3
Audio file
/sites/default/files/radio/090-znak-vodi-mamo.mp3
Audio file
/sites/default/files/radio/119-vv-harmonija.mp3
Audio file
/sites/default/files/radio/115-vv-vesna.mp3
Audio file
/sites/default/files/117-vv-haleluja.mp3
Audio file
/sites/default/files/radio/118-vv-halu_pryhod.mp3
Audio file
/sites/default/files/radio/120_-_gorila_sosna.mp3
Audio file
/sites/default/files/radio/054-oj_po_sinomu_mori.mp3
Audio file
/sites/default/files/055-oj_tam_u_lvovi.mp3
Audio file
/sites/default/files/radio/002-kvitka-osinnie_kokhannia.mp3
Audio file
/sites/default/files/022-haydamaky_gnyva.mp3
Audio file
/sites/default/files/radio/021-haydamaky_bohuslav.mp3
Audio file
/sites/default/files/017-ohorontsi_lisu.mp3
Audio file
/sites/default/files/radio/ta_scho_tancjuye_z_vitrom.mp3
Audio file
/sites/default/files/radio/vita-brevis-doroga-v-nebesa.mp3
Audio file
/sites/default/files/nedilja-prosto-neba.mp3
Audio file
/sites/default/files/radio/vitalij-kozlovskij-znayesh.mp3
Audio file
/sites/default/files/radio/01._enej_-_radio_hello.mp3
Audio file
/sites/default/files/05_vitre_hnatyi.mp3
Audio file
/sites/default/files/radio/igor-balan-oj-tam-za-morjami.mp3
Audio file
/sites/default/files/korali_project_-_korali_-_01._potsuhy.mp3
Audio file
/sites/default/files/radio/batkivcke_gyto.mp3
Audio file
/sites/default/files/radio/burmaka_hodyt_son.mp3
Audio file
/sites/default/files/radio/burmaka_melanka.mp3
Audio file
/sites/default/files/radio/liotchyk.mp3
Audio file
/sites/default/files/lama_meni_tak_treba.mp3
Audio file
/sites/default/files/radio/04._mertvi_troyandy.mp3
Audio file
/sites/default/files/radio/08._z_togo_berega.mp3
Audio file
/sites/default/files/09._ya_bez_tebe_ne_ye.mp3
Audio file
/sites/default/files/maxima_-_kolyskova.mp3
Audio file
/sites/default/files/chuhajster-ukr.mp3
Audio file
/sites/default/files/radio/kozaky.mp3
Audio file
/sites/default/files/tnmk_banzay.mp3
Audio file
/sites/default/files/tnmk_vidryvaysya.mp3
Audio file
/sites/default/files/tnmk_syla.mp3
Audio file
/sites/default/files/tnmk_ta_ty_shcho.mp3
Audio file
/sites/default/files/radio/mandarinovij-raj-zorepadi.mp3
Audio file
/sites/default/files/radio/nedilja-prosto-neba.mp3
Audio file
/sites/default/files/radio/ty_v_mene_ye.mp3
Audio file
/sites/default/files/radio/nebo_ukrayiny-drach_eduard.mp3
Audio file
/sites/default/files/euterpa_marysunia.mp3
Audio file
/sites/default/files/radio/sonce-hmary_na_chuzhyni.mp3
Audio file
/sites/default/files/radio/01.persha_versiya.mp3
Audio file
/sites/default/files/radio/03.vesna_.mp3
Audio file
/sites/default/files/07.chaka_1.mp3
Audio file
/sites/default/files/radio/020-haydamaky_30-lit.mp3
Audio file
/sites/default/files/026-dyki_gusy.mp3
Audio file
/sites/default/files/027-pisnya_pro_pisnyu.mp3
Audio file
/sites/default/files/031-ukraina.mp3
Audio file
/sites/default/files/radio/033-ishla_divcha_luchkamy.mp3
Audio file
/sites/default/files/035-vv_kompanichenko_taras.mp3
Audio file
/sites/default/files/036-kvitka-dva_koliory.mp3
Audio file
/sites/default/files/036-kvitka_cisyk_-_cheremshyna.mp3
Audio file
/sites/default/files/039._dva_kolory.mp3
Audio file
/sites/default/files/radio/040._chornobryvtsi.mp3
Audio file
/sites/default/files/042._nich_jaka_misiachna.mp3
Audio file
/sites/default/files/043._de_ty_teper.mp3
Audio file
/sites/default/files/045-oj_na_gori_ta_zenci_znut.mp3
Audio file
/sites/default/files/046-ridna_maty_moja.mp3
Audio file
/sites/default/files/radio/048-lira.mp3
Audio file
/sites/default/files/radio/049-pryvyd.mp3
Audio file
/sites/default/files/051-neba_zori.mp3
Audio file
/sites/default/files/radio/052-ptakha.mp3
Audio file
/sites/default/files/056-tam_na_stavi.mp3
Audio file
/sites/default/files/radio/059-i_zijde.mp3
Audio file
/sites/default/files/radio/061-hen_dolynoju.mp3
Audio file
/sites/default/files/062-mykyta_shvachka.mp3
Audio file
/sites/default/files/radio/064-bili_demony.mp3
Audio file
/sites/default/files/radio/065-maga_vira.mp3
Audio file
/sites/default/files/067-zapovit.mp3
Audio file
/sites/default/files/069-vechir.mp3
Audio file
/sites/default/files/072-olster.mp3
Audio file
/sites/default/files/radio/073-shiva.mp3
Audio file
/sites/default/files/076-transformer-zmusila.mp3
Audio file
/sites/default/files/098-drymbadadzyga-shidi-ridi.mp3
Audio file
/sites/default/files/101-u-muza-7.mp3
Audio file
/sites/default/files/radio/103-u-muza-16.mp3
Audio file
/sites/default/files/ukranski_koljadki_-_dobrij_vechir_tobi_pane_gospodarju.mp3
Audio file
/sites/default/files/radio/105-vasya-club-04-chorna_gora.mp3
Audio file
/sites/default/files/108-bozhichi-sho-z-kuiva-ta-j-do-rusalima.mp3
Audio file
/sites/default/files/111-bozhichi-u_poli_vijsko_stojalo-koljadka.mp3
Audio file
/sites/default/files/114-muzyka_dyka.mp3
Audio file
/sites/default/files/tik_-_cyklony.mp3
Audio file
/sites/default/files/ukrayinski_dity_i_ruslana_-_ye_u_kozhnogo_z_nas_v_serci_mriya.mp3
Audio file
/sites/default/files/116_-_velyka_syla.mp3
Audio file
/sites/default/files/tik_vesela_pisnya_2010_-_bude_shchastya_gulyay_veselys_sodnya_vitka_pry_vlasti_bude_shchastya_gulyay_veselys_sodnya_vitka_pry_vlasti.mp3
Audio file
/sites/default/files/6_sheva_ital.mp3
Audio file
/sites/default/files/chornyj_luge.mp3
Audio file
/sites/default/files/16_siv_sus_hrestos_da_vecheryaty_-_shchedrivka.mp3