Меѓу програмерите, објектно-ориентираното програмирање привлече голем број следбеници. Популарниот компјутерски јазик Пајтон исто така се придржува до објектно-ориентирана парадигма.
Се занимава со дефинирање на објекти и класи во Python, што ја формира основата за принципите на OOPs. Во ова упатство за „објектно-ориентирано програмирање во Python“, ќе научите како да ги декларирате класите на Python, да креирате објекти од нив и да ги користите четирите техники OOPs.
Значи, прво нешто.
Што е објектно-ориентирано програмирање?
Главниот фокус на објектно-ориентираното програмирање (OOP) е создавање на „објекти“. Збирка од меѓусебно поврзани променливи и функции сочинуваат објект.
Овие променливи често се нарекуваат атрибути на објектот, а неговите однесувања често се нарекуваат негови функции. Овие ставки и даваат на апликацијата поефикасна и поразбирлива структура. Автомобилот е пример за ставка.
Ако автомобилот беше предмет, неговите атрибути ќе вклучуваат работи како што се бојата, моделот, цената, брендот итн.
Друга илустрација: Ако мислиме на кучето како предмет, тогаш некои од неговите карактеристики може да бидат бојата, расата, името, тежината итн. А тој би се движи, лае, игра итн.
Бидејќи во програмирањето вклучува концепти од реалниот свет како објекти, криење, наследство итн., објектно-ориентираното програмирање е добро познато. Поради тоа што е многу слично на околностите во реалниот свет, визуелизацијата е поедноставна.
Објектно-ориентирано програмирање концепти
Класи и објекти во Python
Како и сите други објектно-ориентирани јазици, Python ви овозможува да дизајнирате класи за да генерирате објекти. Најпопуларните типови на податоци во Python, вклучувајќи низи, списоци, речници и други објекти, се вградени класи.
Класата е група на поврзани методи и примерни променливи кои дефинираат одреден вид на објект. Класата може да се гледа како модел или шаблон за објект. Променливите што ја сочинуваат класата се познати како атрибути.
Објектот е член на класа која има дефинирано множество на атрибути. Поради ова, може да се креира кој било број на објекти со користење на истата класа.
Класите на Python се дефинираат со користење на зборот класа, кој потоа е проследен со името на класата и две точки. Илустрација за класа на папагали може да биде:
Овде, ја декларираме празната класа Папагал користејќи го клучниот збор класа. Ние создаваме примери од класи. Инстанца е одреден објект што е направен од одредена класа. „pass“ често се користи како придружник за код од чија имплементација може да се откажеме во моментот. Можеме да го извршиме кодот на Python без да предизвикаме грешка со користење на клучниот збор „pass“.
Инстанција на класа резултира со објект (инстанца). Само описот на објектот се дефинира кога се креира класа. Како резултат на тоа, не се доделува складирање или RAM меморија.
Пример за објект од класата на папагал е:
Obj е објект од класата на Parrot во овој пример.
Да речеме дека знаеме специфики за папагалите. Сега ќе покажеме како да ја креираме класата на папагал и нејзините објекти.
Специјален метод (__init__)
Методот наречен init ги дефинира атрибутите што мора да ги има секој објект на Parrot (). Кога се формира нов објект Parrot, функцијата __init__ ја создава почетната состојба на објектот со доделување на вредностите што ги даваме во својствата на објектот.
Значи, секоја нова инстанца од класата се иницијализира со користење __init__(). Иако __init__() може да прифати кој било број на параметри, јас секогаш е првиот параметар.
Во само-аргументот е вклучено повикување на примерот на активната класа. Параметарот self, кој се поврзува со адресата на тековниот објект на класата и ни дава пристап до податоците за неговите (објектот) променливи, го означува тоа.
Пример 1
Во горната шифра воспоставивме класа наречена Папагал. Следно, се дефинираат својствата. Карактеристиките на една работа се нејзините својства. Функцијата __init__ на класата е местото каде што се специфицирани овие карактеристики.
Кога се формира објект, методот на иницијализатор е оној што се нарекува првично. Потоа, се креираат примероци од класата Parrot. Блаже и Вонда во овој пример се референци (вредности) на нашите нови објекти. __class .species ни овозможува пристап до атрибутот класа.
Секој примерок од класа ги има истите карактеристики. До карактеристиките на примерот може да се пристапи и со користење на blaze.name и blaze.age. Сепак, сите примероци на класа имаат уникатни атрибути на примери.
Пример 2
Методи
Функциите дефинирани во телото на класата се нарекуваат методи. Тие се користат за да специфицираат како ќе се однесува некој предмет.
Два методи, sing() и dance, се дефинирани во гореспоменатата апликација (). Бидејќи тие се повикуваат на објект на пример, како што е пламен, тие се нарекуваат методи на пример.
Основи на концептот OOPS
Четирите основни идеи на објектно-ориентираното програмирање се:
- Наследство
- Енкапсулација
- Полиморфизам
- Апстракција
Наследство
Луѓето често им кажуваат на новороденчињата дека имаат карактеристики на лицето кои наликуваат на оние на нивните родители или дека наследиле одредени особини од нивните родители.
Можно е да сте забележале и дека споделувате неколку карактеристики со вашите родители. Ситуацијата во реалниот свет е прилично слична на наследството.
Меѓутоа, во овој случај, карактеристиките на „родителските класи“ се пренесуваат на „класовите на децата“. Овие аспекти се нарекуваат „својства“ и „методи“ во овој контекст.
Класата може да ги изведе своите методи и атрибути од друга класа користејќи ја техниката позната како наследување. Наследувањето е процес на детска класа да ги добива својствата на матичната класа.
пример:
Родителската класа Human е наследена од класата на дете Boy во примерот погоре. Бидејќи Boy наследува од Human, можеме да пристапиме до сите негови методи и атрибути кога создаваме примерок од класата Boy.
Во класата Boy, дефиниран е и метод наречен schoolName. Објектот на матичната класа не може да пристапи до методот schoolName. Меѓутоа, методот schoolName може да се повика со креирање објект од класа за деца (Boy).
Енкапсулација
Давањето на секоја променлива во програмата глобален пристап не е мудар потег при работа со класи и ракување со чувствителни податоци.
Без да и се даде на програмата целосен пристап до некоја од тие променливи, инкапсулацијата обезбедува механизам за да ги добиеме потребните променливи.
За ажурирање, уредување или бришење податоци од променливи може да се користат методи кои се дефинирани експлицитно за таа цел. Овој метод на програмирање ги има предностите на подобрена безбедност и контрола врз внесувањето податоци.
Погледнете колку брзо може да бидат достапни променливите во демонстрацијата подолу:
Полиморфизам
Да речеме дека го користите телефонот за да го прелистувате Инстаграм гасови. Кога добивте желба да слушате музика, пристапивте до Spotify и почнавте да ја репродуцирате вашата омилена песна.
По некое време, добивте повик, па паузиравте што и да правите во позадина за да одговорите. Твојот пријател се јавил и побарал да му испратиш порака на телефонскиот број на одредена личност.
Така му го испративте телефонскиот број преку СМС и продолживте со вашите задачи. Дали сте собрале нешто? Со само еден уред - вашиот мобилен телефон - можете да сурфате низ доводи, да слушате музика, да примате и остварувате телефонски повици и да испраќате пораки.
Затоа, полиморфизмот е споредлив со тоа. Поли значи бројни, а морфот означува различни форми. Затоа, полиморфизмот во целина се однесува на нешто со различни форми.
Или „нешто“ што, во зависност од околностите, може да покаже различни однесувања. Во OOPS, полиморфизмот опишува функции со исти имиња, но различни однесувања. Алтернативно, потпис на различна функција со исто име на функцијата (параметрите се префрлени на функцијата).
пример:
Овде, можеме да ја користиме променливата животно за повторување низ објектите на Зебрата и зајакот, користејќи ги нивните соодветни методи на пример. Како резултат на тоа, однесувањето (color() & eats()) и на Зебрата и на Зајакот овде се претставени со една променлива наречена животно. Затоа се придржува до правилата за полиморфизам.
Апстракција
Најверојатно користите лаптоп, телефон или таблет за да ја читате оваа содржина. Додека го читате, веројатно земате белешки, подвлекувате клучни пасуси и можеби складирате некои информации во вашите лични датотеки.
Сè што можете да видите кога го читате ова е „екран“ со податоците што ви се прикажуваат. Едноставно ги гледате копчињата на тастатурата додека пишувате, така што не мора да се грижите за внатрешните суптилности како на пример како притискањето на копче може да предизвика тој збор да се појави на екранот.
Алтернативно, како со притискање на копче на екранот може да се отвори нов таб.
Затоа, што и да можеме да забележиме во оваа ситуација е апстрактно. Можеме да го видиме само исходот што го создава, а не внатрешните сложености (кои всушност ни се важни).
Слично на ова, апстракцијата само ги открива функциите што сè ги поседува, притоа прикривајќи какви било имплементации или внатрешни детали.
Главната цел на Abstraction е да ги прикрие информациите во заднина и секоја необична имплементација на податоци, така што луѓето го гледаат само она што треба да го видат. Тоа помага во управувањето со сложеноста на кодот.
пример:
Тука е присутна апстрактна класа поврзана со возилото. Бидејќи наследува од апстрактната класа ABC, таа е апстрактна. Бидејќи апстрактните методи не се дефинирани или остануваат празни, класата Vehicle има апстрактен метод наречен no of wheels кој нема дефиниција.
Тие ги предвидуваат класите што ги наследуваат апстрактните класи за да ја дадат имплементацијата на методот.
Придобивки од концептите на OOPS
- Со инкапсулирање се постигнува висока безбедност и приватност на податоците.
- Флексибилност да има многу полиморфни верзии од истата класа.
- Високото ниво на сложеност на кодот беше намалено со апстракција.
- Наместо да се пребарува низ стотици линии код за да се лоцира еден проблем, модуларноста на програмирањето го прави дебагирањето едноставно.
- Повторната употреба на кодот е предизвикана од наследувањето на својствата на матичната класа од детската класа.
- Ефективното решавање на проблемите е можно затоа што создаваме класи кои ги прават потребните активности за секој мини-проблем. Следниот проблем може да се реши уште побрзо бидејќи можеме повторно да ги користиме тие класи.
Заклучок
Како заклучок, научивме за OOPS идеите во Python, најжешката програмска парадигма во моментов.
Откако ќе го прочитате ова, сигурно сте сфатиле дека парадигмата OOPS целосно се занимава со идејата за класи и објекти. и OOPS концепти како што се енкапсулација, полиморфизам, наследување и апстракција.
Оставете Одговор