Med razvijalci je objektno usmerjeno programiranje pritegnilo precej privržencev. Priljubljen računalniški jezik Python se prav tako drži objektno usmerjene paradigme.
Ukvarja se z definiranjem objektov in razredov v Pythonu, ki predstavlja osnovo za načela OOP. V tej vadnici o »objektno usmerjenem programiranju v Pythonu« se boste naučili, kako deklarirati razrede Python, iz njih ustvariti objekte in uporabiti štiri tehnike OOP.
Torej, prva stvar.
Kaj je objektno usmerjeno programiranje?
Glavni poudarek objektno orientiranega programiranja (OOP) je ustvarjanje "predmetov". Zbirka medsebojno povezanih spremenljivk in funkcij sestavlja objekt.
Te spremenljivke se pogosto imenujejo atributi objekta, njegovo vedenje pa se pogosto imenuje njegove funkcije. Ti elementi zagotavljajo aplikaciji bolj učinkovito in razumljivo strukturo. Avtomobil je primer predmeta.
Če bi bil avtomobil predmet, bi njegovi atributi vključevali stvari, kot so barva, model, cena, znamka itd. Poleg tega bi pospeševal, upočasnjeval in spreminjal prestave.
Še ena ponazoritev: Če si psa predstavljamo kot predmet, so nekatere njegove značilnosti lahko barva, pasma, ime, teža itd. In premikal bi se, lajal, igral itd.
Ker v programiranje vključuje koncepte iz resničnega sveta, kot so predmeti, skrivanje, dedovanje itd., je objektno usmerjeno programiranje dobro znano. Ker je tako podobna okoliščinam v resničnem svetu, je vizualizacija preprostejša.
Koncepti objektno orientiranega programiranja
Razredi in predmeti v Pythonu
Kot vsi drugi objektno usmerjeni jeziki vam Python omogoča oblikovanje razredov za ustvarjanje objektov. Najbolj priljubljeni tipi podatkov v Pythonu, vključno z nizi, seznami, slovarji in drugimi objekti, so vgrajeni razredi.
Razred je skupina povezanih metod in spremenljivk primerkov, ki definirajo določeno vrsto predmeta. Razred lahko vidimo kot model ali predlogo za predmet. Spremenljivke, ki sestavljajo razred, so znane kot atributi.
Objekt je član razreda, ki ima definiran niz atributov. Zaradi tega je mogoče ustvariti poljubno število objektov z uporabo istega razreda.
Razredi Python so definirani z besedo razred, ki ji nato sledita ime razreda in dvopičje. Ilustracija razreda papiga je lahko:
Tukaj deklariramo prazen razred Parrot s ključno besedo class. Primerke ustvarjamo iz razredov. Primerek je določen predmet, ki je bil izdelan iz določenega razreda. 'pass' se pogosto uporablja kot nadomestek za kodo, katere implementaciji se lahko za trenutek odpovemo. Kodo Python lahko izvedemo brez sprožitve napake z uporabo ključne besede »pass«.
Rezultat instanciranja razreda je predmet (instanca). Ko je razred ustvarjen, je definiran samo opis objekta. Posledično ni dodeljen noben prostor za shranjevanje ali RAM.
Primer predmeta razreda papiga je:
Obj je v tem primeru objekt razreda Parrot.
Recimo, da vemo podrobnosti o papigah. Zdaj bomo pokazali, kako ustvariti razred papiga in njegove objekte.
Posebna metoda ( __init__ )
Metoda, imenovana init, definira atribute, ki jih mora imeti vsak predmet Parrot (). Ko se oblikuje nov objekt Parrot, funkcija __init__ ustvari začetno stanje objekta z dodelitvijo vrednosti, ki jih posredujemo znotraj lastnosti objekta.
Torej se vsak nov primerek razreda inicializira z uporabo __init__(). Čeprav lahko __init__() sprejme poljubno število parametrov, je self vedno prvi parameter.
Sklicevanje na instanco aktivnega razreda je vključeno v samoargument. Parameter self, ki se poveže z naslovom trenutnega objekta razreda in nam omogoči dostop do podatkov njegovih (objekta) spremenljivk, to pomeni.
Primer 1
Vzpostavili smo razred z imenom Parrot v zgornji kodi. Nato so definirane lastnosti. Značilnosti stvari so njene lastnosti. Funkcija __init__ razreda je mesto, kjer so podane te značilnosti.
Ko je objekt oblikovan, je metoda inicializatorja tista, ki je prvotno poklicana. Nato se ustvarijo primerki razreda Parrot. Blaze in Wonda sta v tem primeru sklicevanja (vrednosti) na naše nove predmete. __class .species nam omogoča dostop do atributa razreda.
Vsak primerek razreda ima enake značilnosti. Do značilnosti primerka je mogoče dostopati tudi z uporabo blaze.name in blaze.age. Vendar imajo vsi primerki razreda edinstvene atribute primerka.
Primer 2
Metode
Funkcije, definirane znotraj telesa razreda, se imenujejo metode. Zaposleni so, da določijo, kako se bo predmet obnašal.
V zgoraj omenjeni aplikaciji () sta definirani dve metodi, sing() in dance. Ker so priklicane na objektu primerka, kot je flame, se imenujejo metode primerka.
Osnove koncepta OOPS
Štiri temeljne ideje objektno orientiranega programiranja so:
- Dedovanje
- Inkapsulacija
- Polimorfizem
- Abstrakcija
Dedovanje
Ljudje novorojenčkom pogosto povedo, da imajo značilnosti obraza, ki so podobne tistim njihovih staršev, ali da so od staršev podedovali določene lastnosti.
Možno je, da ste tudi opazili, da imate nekaj skupnih značilnosti s svojimi starši. Situacija v resničnem svetu je precej podobna tudi dedovanju.
Vendar se v tem primeru značilnosti »starševskih razredov« prenesejo na »podrejene razrede«. Ti vidiki se v tem kontekstu imenujejo "lastnosti" in "metode".
Razred lahko izpelje svoje metode in atribute iz drugega razreda z uporabo tehnike, znane kot dedovanje. Dedovanje je proces, pri katerem podrejeni razred prejme lastnosti nadrejenega razreda.
Primer:
Nadrejeni razred Človek podeduje podrejeni razred Fant v zgornjem primeru. Ker Boy deduje od Humana, lahko dostopamo do vseh njegovih metod in atributov, ko ustvarimo primerek razreda Boy.
V razredu Boy je bila definirana tudi metoda, imenovana schoolName. Nadrejeni objekt razreda ne more dostopati do metode schoolName. Metodo schoolName pa lahko pokličete tako, da ustvarite predmet podrejenega razreda (Boy).
Inkapsulacija
Omogočanje globalnega dostopa vsaki spremenljivki v programu ni pametna poteza pri delu z razredi in obravnavi občutljivih podatkov.
Ne da bi programu omogočili popoln dostop do katere koli od teh spremenljivk, enkapsulacija zagotavlja mehanizem za pridobitev potrebnih spremenljivk.
Metode, ki so izrecno definirane za ta namen, se lahko uporabljajo za posodabljanje, urejanje ali brisanje podatkov iz spremenljivk. Ta način programiranja ima prednosti povečane varnosti in nadzora nad vnosom podatkov.
Oglejte si, kako hitro so lahko spremenljivke dostopne v spodnji predstavitvi:
Polimorfizem
Recimo, da uporabljate telefon za brskanje po Instagram viri. Ko ste dobili željo po poslušanju glasbe, ste dostopali do Spotifyja in začeli predvajati svojo najljubšo pesem.
Čez nekaj časa ste prejeli klic, zato ste začasno ustavili vse, kar ste počeli v ozadju, da bi odgovorili. Vaš prijatelj je poklical in prosil, da mu pošljete SMS na telefonsko številko določene osebe.
Torej ste mu poslali telefonsko številko prek SMS-a in nadaljevali s svojimi nalogami. Ste kaj pobrali? S samo eno napravo – vašim mobilnim telefonom – lahko brskate po virih, poslušate glasbo, sprejemate in opravljate telefonske klice ter pošiljate sporočila.
Zato je polimorfizem primerljiv s tem. Poly pomeni številne, morph pa različne oblike. Zato se polimorfizem kot celota nanaša na nekaj z različnimi oblikami.
Ali »nekaj«, kar lahko glede na okoliščine kaže različna vedenja. V OOPS polimorfizem opisuje funkcije z istimi imeni, vendar različnim vedenjem. Druga možnost je podpis druge funkcije z enakim imenom funkcije (parametri, posredovani funkciji).
Primer:
Tukaj lahko uporabimo spremenljivko žival za iteracijo po predmetih Zebra in Zajec z uporabo njunih ustreznih instančnih metod. Posledično je vedenje (color() & eats()) Zebre in Zajca tukaj predstavljeno z eno samo spremenljivko, imenovano žival. Zato se drži pravil polimorfizma.
Abstrakcija
Za branje te vsebine najverjetneje uporabljate prenosni računalnik, telefon ali tablico. Med branjem si domnevno tudi delate zapiske, podčrtavate ključne odlomke in morda shranjujete nekaj informacij v svoje osebne datoteke.
Vse, kar lahko vidite, ko to berete, je »zaslon« s podatki, ki se vam prikazujejo. Med tipkanjem vidite samo tipke na tipkovnici, zato vam ni treba skrbeti za notranje podrobnosti, na primer, kako lahko pritisk na tipko povzroči, da se ta beseda prikaže na zaslonu.
Druga možnost je, kako lahko s pritiskom na gumb na zaslonu zaženete nov zavihek.
Zato je vse, kar lahko opazimo v tej situaciji, abstraktno. Vidimo lahko samo rezultat, ki ga ustvarja, in ne notranjih zapletov (ki so za nas dejansko pomembni).
Podobno kot to, abstrakcija samo razkrije funkcije, ki jih ima vse, medtem ko prikrije kakršne koli izvedbe ali notranje podrobnosti.
Glavni cilj abstrakcije je prikriti informacije o ozadju in kakršno koli implementacijo tujih podatkov, tako da ljudje vidijo le tisto, kar morajo videti. Pomaga pri upravljanju kompleksnosti kode.
Primer:
Tukaj je prisoten abstraktni razred, povezan z vozilom. Ker deduje iz abstraktnega razreda ABC, je abstrakten. Ker abstraktne metode niso definirane ali ostanejo prazne, ima razred Vehicle abstraktno metodo, imenovano no of wheels, ki nima definicije.
Predvidijo razrede, ki podedujejo abstraktne razrede, da zagotovijo izvedbo metode.
Prednosti konceptov OOPS
- Z inkapsulacijo se doseže visoka varnost in zasebnost podatkov.
- Prilagodljivost pri številnih polimorfnih različicah istega razreda.
- Visoka stopnja kompleksnosti kode je bila zmanjšana z abstrakcijo.
- Namesto prebiranja na stotine vrstic kode, da bi našli eno težavo, modularnost programiranja olajša odpravljanje napak.
- Ponovna uporaba kode je posledica dedovanja lastnosti nadrejenega razreda s strani podrejenega razreda.
- Učinkovito reševanje problemov je možno, ker ustvarimo razrede, ki izvedejo potrebna dejanja za vsak mini problem. Naslednjo težavo lahko rešimo še hitreje, saj lahko ponovno uporabimo te razrede.
zaključek
Za zaključek smo izvedeli o idejah OOPS v Pythonu, trenutno najbolj vroči paradigmi programiranja.
Ko ste to prebrali, ste gotovo spoznali, da se paradigma OOPS v celoti ukvarja z idejo razredov in objektov. in koncepti OOPS, kot so enkapsulacija, polimorfizem, dedovanje in abstrakcija.
Pustite Odgovori