Међу програмерима, објектно оријентисано програмирање привукло је знатан број следбеника. Популарни рачунарски језик Питхон се такође придржава објектно оријентисане парадигме.
Бави се дефинисањем објеката и класа у Питхон-у, који чини основу за ООП принципе. У овом водичу о „објектно оријентисаном програмирању у Питхон-у“, научићете како да декларирате Питхон класе, креирате објекте од њих и користите четири ООП технике.
Дакле, прва ствар.
Шта је објектно оријентисано програмирање?
Главни фокус објектно оријентисаног програмирања (ООП) је стварање „објеката“. Колекција међусобно повезаних променљивих и функција чини објекат.
Ове варијабле се често називају атрибутима објекта, а његово понашање се често назива његовим функцијама. Ове ставке пружају апликацији ефикаснију и разумљивију структуру. Аутомобил је пример предмета.
Да је аутомобил ставка, његови атрибути би укључивали ствари као што су боја, модел, цена, марка, итд. Поред тога, он би убрзавао, успоравао и мењао брзине.
Још једна илустрација: Ако о псу размишљамо као о ствари, онда неке од његових карактеристика могу бити боја, раса, име, тежина итд. И он би се кретао, лајао, играо се итд.
Пошто у програмирање укључује концепте из стварног света као што су објекти, скривање, наслеђивање итд., објектно оријентисано програмирање је добро познато. Пошто је толико слична стварним околностима, визуализација је поједностављена.
Концепти објектно-оријентисаног програмирања
Класе и објекти у Питхон-у
Као и сви други објектно оријентисани језици, Питхон вам омогућава да дизајнирате класе за генерисање објеката. Најпопуларнији типови података у Питхон-у, укључујући стрингове, листе, речнике и друге објекте, су уграђене класе.
Класа је група повезаних метода и променљивих инстанце које дефинишу одређену врсту објекта. Класа се може посматрати као модел или шаблон за објекат. Променљиве које чине класу познате су као атрибути.
Објекат је члан класе која има дефинисан скуп атрибута. Због тога се било који број објеката може креирати користећи исту класу.
Питхон класе се дефинишу коришћењем речи цласс, након чега следи име класе и двотачка. Илустрација класе папагаја може бити:
Овде декларишемо празну класу Папагај користећи кључну реч цласс. Ми креирамо инстанце из класа. Инстанца је одређени објекат који је направљен од одређене класе. 'пасс' се често користи као замена за код чије имплементације за сада можемо одустати. Можемо да извршимо Питхон код без појаве грешке користећи кључну реч „пасс“.
Инстанција класе резултира објектом (инстанцом). Када се креира класа, дефинише се само опис објекта. Као резултат тога, не додељује се складиште или РАМ.
Пример објекта класе папагаја је:
Обј је у овом случају објекат класе Папагај.
Рецимо да знамо специфичности о папагајима. Сада ћемо показати како да креирамо класу папагаја и њене објекте.
Посебна метода ( __инит__ )
Метода која се зове инит дефинише атрибуте које сваки Паррот објекат мора да има (). Када се формира нови објекат Паррот, функција __инит__ креира почетно стање објекта додељивањем вредности које пружамо у оквиру својстава објекта.
Дакле, свака нова инстанца класе се иницијализује коришћењем __инит__(). Иако __инит__() може да прихвати било који број параметара, селф је увек први параметар.
Референца на активну инстанцу класе је укључена у селф-аргумент. Параметар селф, који се повезује са адресом тренутног објекта класе и даје нам приступ подацима његових (објекта) променљивих, то означава.
Пример
Успоставили смо класу под називом Папагај у горњем коду. Затим се дефинишу својства. Карактеристике ствари су њена својства. Функција __инит__ класе је место где су наведене карактеристике.
Када се формира објекат, метод иницијализатора је онај који се иницијално позива. Затим се креирају инстанце класе Папагај. Блазе и Вонда у овом случају су референце (вредности) на наше нове објекте. __цласс .специес нам омогућава приступ атрибуту класе.
Свака инстанца класе има исте карактеристике. Карактеристикама инстанце се такође може приступити помоћу блазе.наме и блазе.аге. Међутим, све инстанце класе имају јединствене атрибуте инстанце.
Пример
Методе
Функције дефинисане унутар тела класе називају се методе. Они су запослени да специфицирају како ће се ставка понашати.
Две методе, синг() и данце, дефинисане су у претходно поменутој апликацији (). Пошто се позивају на објекат инстанце, као што је пламен, они се називају методама инстанце.
Основи концепта ООПС
Четири основне идеје објектно оријентисаног програмирања су:
- наслеђе
- Капсулација
- Полиморфизам
- апстракција
наслеђе
Људи често говоре новорођенчади да имају карактеристике лица које личе на оне њихових родитеља или да су наследиле одређене особине од својих родитеља.
Могуће је да сте такође приметили да делите неке карактеристике са својим родитељима. Ситуација у стварном свету је такође прилично слична наследству.
Међутим, у овом случају, карактеристике „родитељских класа“ се преносе на „разреде деце“. Ови аспекти се у овом контексту називају „особине“ и „методе“.
Класа може да изведе своје методе и атрибуте из друге класе коришћењем технике познате као наслеђивање. Наслеђивање је процес подређене класе која прима својства родитељске класе.
Пример:
Родитељску класу Хуман је наследила класа деце Бои у примеру изнад. Пошто је Бои наследио од Хуман, можемо приступити свим његовим методама и атрибутима када креирамо инстанцу класе Бои.
У класи Дечак такође је дефинисан метод под називом сцхоолНаме. Објекат родитељске класе не може да приступи методи сцхоолНаме. Међутим, метода сцхоолНаме се може позвати креирањем објекта дечје класе (Дечак).
Капсулација
Давање глобалног приступа свакој променљивој у програму није мудар потез када радите са класама и рукујете осетљивим подацима.
Без давања програму потпуни приступ било којој од тих варијабли, енкапсулација нам пружа механизам за добијање потребних променљивих.
Методе које су експлицитно дефинисане за ту сврху могу се користити за ажурирање, уређивање или брисање података из променљивих. Овај метод програмирања има предности побољшане сигурности и контроле над уносом података.
Погледајте колико брзо променљиве могу бити доступне у демонстрацији испод:
Полиморфизам
Рецимо да користите свој телефон за претраживање Инстаграм феедови. Када сте добили жељу да слушате музику, приступили сте Спотифи-у и почели да пуштате своју омиљену песму.
Након неког времена, примили сте позив, па сте паузирали све што сте радили у позадини да бисте одговорили на њега. Ваш пријатељ је назвао и затражио да му пошаљете поруку на број телефона одређене особе.
Дакле, послали сте му број телефона путем СМС-а и наставили са својим задацима. Јеси ли нешто схватио? Са само једним уређајем – вашим мобилним телефоном – могли бисте да сурфујете кроз фидове, слушате музику, примате и упућујете телефонске позиве и шаљете поруке.
Дакле, полиморфизам је упоредив са тим. Поли значи бројне, а морф означава различите облике. Стога се полиморфизам у целини односи на нешто са различитим облицима.
Или „нешто“ што, у зависности од околности, може показати различита понашања. У ООПС-у, полиморфизам описује функције са истим именима, али различита понашања. Алтернативно, други потпис функције са истим именом функције (параметри прослеђени функцији).
Пример:
Овде можемо да користимо променљиву животињу за понављање објеката Зебре и Зеца, користећи њихове одговарајуће методе инстанце. Као резултат, понашање (цолор() и еатс()) и зебре и зеца је овде представљено једном променљивом која се зове животиња. Стога се придржава правила полиморфизма.
апстракција
За читање овог садржаја највероватније користите лаптоп, телефон или таблет. Док га читате, вероватно такође правите белешке, подвлачите кључне пасусе и можда чувате неке информације у вашим личним датотекама.
Све што можете видети када ово прочитате је „екран“ са подацима који вам се приказују. Само видите тастере на тастатури док куцате, тако да не морате да бринете о унутрашњим суптилностима као што је то како притискање тастера може довести до тога да се та реч појави на екрану.
Алтернативно, како притиском на дугме на екрану може да се покрене нова картица.
Дакле, све што можемо да посматрамо у овој ситуацији је апстрактно. Можемо да видимо само исход који ствара, а не унутрашње замршености (које су нам заправо важне).
Слично овоме, апстракција само открива функције које све поседује, док прикрива било какве имплементације или унутрашње детаље.
Главни циљ апстракције је да сакрије позадинске информације и било какву примену спољних података тако да људи виде само оно што треба да виде. Помаже у управљању сложеношћу кода.
Пример:
Овде је присутна апстрактна класа везана за возило. Пошто наслеђује апстрактну класу АБЦ, она је апстрактна. Пошто апстрактне методе нису дефинисане или остају празне, класа Вехицле има апстрактни метод који се зове но оф вхеелс коме недостаје дефиниција.
Они предвиђају класе које наслеђују апстрактне класе да би дале имплементацију методе.
Предности ООПС концепата
- Енкапсулацијом се постиже висока сигурност и приватност података.
- Флексибилност у поседовању много полиморфних верзија исте класе.
- Висок ниво сложености кода смањен је апстракцијом.
- Уместо прегледавања стотина линија кода да бисте лоцирали један проблем, модуларност програмирања чини отклањање грешака једноставним.
- Поновна употреба кода је узрокована наслеђивањем својстава надређене класе од стране подређене класе.
- Ефикасно решавање проблема је могуће јер креирамо класе које раде неопходне акције за сваки мини-проблем. Следећи проблем се може решити још брже јер можемо поново користити те класе.
Zakljucak
У закључку, научили смо о ООПС идејама у Питхон-у, тренутно најтоплијој програмској парадигми.
Након што сте ово прочитали, сигурно сте схватили да се ООПС парадигма у потпуности бави идејом класа и објеката. и ООПС концепти као што су енкапсулација, полиморфизам, наслеђивање и апстракција.
Ostavite komentar