Kūrėjų tarpe objektinis programavimas pritraukė nemažai gerbėjų. Populiari kompiuterinė kalba Python taip pat laikosi objektinės paradigmos.
Jame kalbama apie objektų ir klasių apibrėžimą Python, kuris sudaro OOP principų pagrindą. Šioje pamokoje apie „objektinį programavimą Python“ išmoksite deklaruoti Python klases, kurti objektus iš jų ir naudoti keturis OOP metodus.
Taigi, pirmas dalykas.
Kas yra Objektinis programavimas?
Objektinis programavimas (OOP) pagrindinis dėmesys skiriamas „objektų“ kūrimui. Objektą sudaro tarpusavyje susijusių kintamųjų ir funkcijų rinkinys.
Šie kintamieji dažnai vadinami objekto atributais, o jo elgsena dažnai vadinama jo funkcijomis. Šie elementai suteikia programai veiksmingesnę ir suprantamesnę struktūrą. Automobilis yra daikto pavyzdys.
Jei automobilis būtų daiktas, jo atributai apimtų tokius dalykus kaip jo spalva, modelis, kaina, prekės ženklas ir kt. Be to, jis įsibėgėtų, sulėtintų ir perjungtų pavaras.
Kita iliustracija: jei šunį laikytume daiktu, kai kurios jo savybės gali būti spalva, veislė, vardas, svoris ir pan. Ir jis judėtų, lotų, žaistų ir pan.
Kadangi į programavimą įtrauktos realaus pasaulio sąvokos, pvz., objektai, slėpimas, paveldėjimas ir kt., Objektinis programavimas yra gerai žinomas. Kadangi tai labai panašu į realias aplinkybes, vizualizacija yra paprastesnė.
Objektinio programavimo koncepcijos
„Python“ klasės ir objektai
Kaip ir visos kitos į objektus orientuotos kalbos, Python leidžia kurti klases objektams generuoti. Populiariausi Python duomenų tipai, įskaitant eilutes, sąrašus, žodynus ir kitus objektus, yra integruotos klasės.
Klasė yra susietų metodų ir egzempliorių kintamųjų, apibrėžiančių tam tikros rūšies objektą, grupė. Klasė gali būti laikoma objekto modeliu arba šablonu. Kintamieji, sudarantys klasę, yra žinomi kaip atributai.
Objektas yra klasės narys, turintis apibrėžtą atributų rinkinį. Dėl šios priežasties naudojant tą pačią klasę galima sukurti bet kokį objektų skaičių.
Python klasės apibrėžiamos naudojant žodį class, po kurio rašomas klasės pavadinimas ir dvitaškis. Papūgos klasės iliustracija gali būti tokia:
Čia mes deklaruojame tuščią klasę Parrot naudodami klasės raktinį žodį. Kuriame egzempliorius iš klasių. Pavyzdys yra tam tikras objektas, sukurtas iš tam tikros klasės. „Pass“ dažnai naudojamas kaip kodas, kurio diegimo šiuo metu galime atsisakyti. Mes galime vykdyti Python kodą nekeldami klaidos naudodami raktinį žodį „pass“.
Klasės egzempliorius sukuria objektą (pavyzdį). Kuriant klasę apibrėžiamas tik objekto aprašymas. Dėl to neskiriama saugyklos ar RAM.
Papūgos klasės objekto pavyzdys yra:
Šiuo atveju „Obj“ yra „Parrot“ klasės objektas.
Tarkime, žinome apie papūgas. Dabar parodysime, kaip sukurti papūgos klasę ir jos objektus.
Specialus metodas (__init__)
Metodas, vadinamas init, apibrėžia atributus, kuriuos turi turėti kiekvienas Parrot objektas (). Kai sukuriamas naujas Parrot objektas, funkcija __init__ sukuria pradinę objekto būseną, priskirdama reikšmes, kurias pateikiame objekto ypatybėse.
Taigi, kiekvienas naujas klasės egzempliorius inicijuojamas naudojant __init__(). Nors __init__() gali priimti bet kokį parametrų skaičių, self visada yra pirmasis parametras.
Nuoroda į aktyvios klasės egzempliorių įtraukta į savęs argumentą. Tai reiškia savęs parametras, kuris susieja su dabartinio klasės objekto adresu ir suteikia mums prieigą prie jo (objekto) kintamųjų duomenų.
Pavyzdys 1
Aukščiau pateiktame kode sukūrėme klasę, pavadintą Parrot. Toliau apibrėžiamos savybės. Daikto savybės yra jo savybės. Šios charakteristikos yra nurodytos klasės funkcijoje __init__.
Kai objektas yra suformuotas, inicijavimo metodas yra tas, kuris iškviečiamas iš pradžių. Tada sukuriami Parrot klasės egzemplioriai. „Blaze“ ir „Wonda“ šiuo atveju yra nuorodos (vertės) į mūsų naujus objektus. __class .species leidžia pasiekti klasės atributą.
Kiekvienas klasės egzempliorius turi tas pačias savybes. Egzempliorių charakteristikas taip pat galima pasiekti naudojant blaze.name ir blaze.age. Tačiau visi klasės egzemplioriai turi unikalius egzempliorių atributus.
Pavyzdys 2
Metodai
Funkcijos, apibrėžtos klasės korpuse, vadinamos metodais. Jie naudojami norint nurodyti, kaip daiktas elgsis.
Du metodai, dainavimas () ir šokis, yra apibrėžti pirmiau minėtoje programoje (). Kadangi jie iškviečiami egzemplioriaus objekte, pvz., liepsna, jie vadinami egzempliorių metodais.
OOPS koncepcijos pagrindai
Keturios pagrindinės objektinio programavimo idėjos yra šios:
- Paveldėjimai
- Kapsuliavimas
- Polimorfizmas
- Abstrakcija
Paveldėjimai
Žmonės dažnai sako naujagimiams, kad jų veido bruožai yra panašūs į jų tėvų, arba kad jie paveldėjo tam tikrus bruožus iš savo tėvų.
Gali būti, kad jūs taip pat pastebėjote, kad kai kurios savybės jums būdingos savo tėvams. Reali situacija taip pat yra gana panaši į paveldėjimą.
Tačiau šiuo atveju „tėvų klasių“ charakteristikos perduodamos „vaikų klasėms“. Šie aspektai šiame kontekste vadinami „savybėmis“ ir „metodais“.
Klasė gali gauti savo metodus ir atributus iš kitos klasės, naudodama metodą, žinomą kaip paveldėjimas. Paveldėjimas yra procesas, kai antrinė klasė gauna pirminės klasės savybes.
Pavyzdys:
Pirmiau pateiktame pavyzdyje pirminę klasę žmogus paveldi antrinė klasė berniukas. Kadangi berniukas paveldi iš žmogaus, mes galime pasiekti visus jo metodus ir atributus, kai sukuriame Boy klasės egzempliorių.
Berniukų klasėje taip pat buvo apibrėžtas metodas, vadinamas schoolName. Pirminės klasės objektas negali pasiekti metodo schoolName. Tačiau metodas schoolName gali būti iškviestas sukuriant vaikų klasės objektą (Boy).
Kapsuliavimas
Suteikti visiems programos kintamiesiems visuotinę prieigą nėra protingas žingsnis dirbant su klasėmis ir tvarkant slaptus duomenis.
Nesuteikiant programai visiškos prieigos prie tų kintamųjų, inkapsuliavimas suteikia mums mechanizmą, leidžiantį gauti reikiamus kintamuosius.
Metodai, kurie yra aiškiai apibrėžti tam tikslui, gali būti naudojami duomenims iš kintamųjų atnaujinti, redaguoti arba ištrinti. Šio programavimo būdo pranašumai yra padidintas saugumas ir duomenų įvesties kontrolė.
Pažiūrėkite, kaip greitai kintamieji gali būti pasiekiami toliau pateiktoje demonstracijoje:
Polimorfizmas
Tarkime, kad naršydami naudojate telefoną „Instagram“ kanalai. Kai kilo noras klausytis muzikos, prisijungėte prie „Spotify“ ir pradėjote groti mėgstamą dainą.
Po kurio laiko sulaukėte skambučio, todėl pristabdėte viską, ką darėte fone, kad į jį atsilieptumėte. Jūsų draugas paskambino ir paprašė atsiųsti jiems tam tikro asmens telefono numerį.
Taigi jūs išsiuntėte jam telefono numerį SMS žinute ir tęsėte savo užduotis. Ar ką nors pasiėmėte? Naudodami tik vieną įrenginį – savo mobilųjį telefoną – galite naršyti kanaluose, klausytis muzikos, skambinti ir skambinti bei siųsti žinutes.
Todėl polimorfizmą galima palyginti su tuo. Poli reiškia daugybę, o morfas reiškia skirtingas formas. Todėl polimorfizmas kaip visuma reiškia kažką turinčio įvairių formų.
Arba „kažkas“, kuris, priklausomai nuo aplinkybių, gali rodyti įvairų elgesį. OOPS sistemoje polimorfizmas apibūdina funkcijas su tais pačiais pavadinimais, bet skirtingais poelgiais. Arba kitas funkcijos parašas tuo pačiu funkcijos pavadinimu (funkcijai perduoti parametrai).
Pavyzdys:
Čia galime naudoti kintamąjį gyvūną, kad galėtume kartoti zebro ir triušio objektus, naudodami atitinkamus atvejo metodus. Dėl to zebro ir triušio elgesys (spalva () ir valgymas ()) čia yra pavaizduotas vienu kintamuoju, vadinamu gyvūnu. Todėl jis laikosi polimorfizmo taisyklių.
Abstrakcija
Tikėtina, kad skaitydami šį turinį naudojate nešiojamąjį kompiuterį, telefoną ar planšetinį kompiuterį. Skaitydami jį taip pat tikriausiai užsirašote, pabraukite pagrindines ištraukas ir galbūt saugote tam tikrą informaciją savo asmeniniuose failuose.
Viskas, ką matote skaitydami tai, yra „ekranas“ su jums rodomais duomenimis. Tiesiog įvesdami matote klaviatūros klavišus, todėl jums nereikės jaudintis dėl vidinių subtilybių, pavyzdžiui, kaip paspaudus klavišą tas žodis gali pasirodyti ekrane.
Arba, kaip paspaudus mygtuką ekrane galima paleisti naują skirtuką.
Todėl viskas, ką galime pastebėti šioje situacijoje, yra abstraktu. Galime matyti tik jos sukuriamą rezultatą, o ne vidines subtilybes (kurios mums iš tikrųjų svarbios).
Panašiai, abstrakcija tik atskleidžia funkcijas, kurias turi viskas, slepiant bet kokius įgyvendinimus ar vidines detales.
Pagrindinis abstrakcijos tikslas yra nuslėpti pagrindinę informaciją ir bet kokius pašalinius duomenis, kad žmonės matytų tik tai, ką jiems reikia matyti. Tai padeda valdyti kodo sudėtingumą.
Pavyzdys:
Čia pateikiama su transporto priemone susijusi abstrakti klasė. Kadangi jis paveldimas iš abstrakčios klasės ABC, jis yra abstraktus. Kadangi abstraktūs metodai nėra apibrėžti arba lieka tušti, klasėje „Transporto priemonė“ yra abstraktus metodas, vadinamas ratų nėra, kuriam trūksta apibrėžimo.
Jie numato klases, kurios paveldi abstrakčias klases, kad pateiktų metodo įgyvendinimą.
OOPS koncepcijų privalumai
- Inkapsuliuojant pasiekiamas aukštas saugumas ir duomenų privatumas.
- Lankstumas turint daug tos pačios klasės polimorfinių versijų.
- Aukštą kodo sudėtingumo lygį sumažino abstrakcija.
- Užuot sijoję šimtus kodo eilučių, kad surastumėte vieną problemą, programavimo moduliškumas palengvina derinimą.
- Kodo pakartotinį naudojimą sukelia antrinės klasės pirminės klasės ypatybių paveldėjimas.
- Efektyvus problemų sprendimas yra įmanomas, nes kuriame klases, kurios atlieka reikiamus veiksmus kiekvienai mini problemai. Šią problemą galima išspręsti dar greičiau, nes galime pakartotinai panaudoti šias klases.
Išvada
Apibendrinant, mes sužinojome apie OOPS idėjas Python, šiuo metu karščiausioje programavimo paradigmoje.
Perskaitę tai, tikriausiai supratote, kad OOPS paradigma visiškai susijusi su klasių ir objektų idėja. ir OOPS sąvokas, tokias kaip inkapsuliavimas, polimorfizmas, paveldėjimas ir abstrakcija.
Palikti atsakymą