Izstrādātāju vidū objektorientētā programmēšana ir piesaistījusi ievērojamu skaitu sekotāju. Populārā datorvaloda Python tāpat ievēro objektu orientētu paradigmu.
Tas attiecas uz objektu un klašu definēšanu Python, kas veido OOP principu pamatu. Šajā apmācībā par "objektorientētu programmēšanu Python" jūs uzzināsit, kā deklarēt Python klases, izveidot no tām objektus un izmantot četras OOP metodes.
Tātad, pirmā lieta vispirms.
Kas ir objektorientētā programmēšana?
Objektorientētās programmēšanas (OOP) galvenais mērķis ir “objektu” izveide. Savstarpēji saistītu mainīgo un funkciju kolekcija veido objektu.
Šos mainīgos bieži sauc par objekta atribūtiem, un tā uzvedību bieži sauc par tā funkcijām. Šie vienumi nodrošina lietojumprogrammai efektīvāku un saprotamāku struktūru. Automašīna ir preces piemērs.
Ja automašīna būtu prece, tās atribūti ietvertu tādas lietas kā tā krāsa, modelis, cena, zīmols utt. Turklāt tas paātrinātu, palēninātu un pārslēgtu pārnesumus.
Vēl viena ilustrācija: ja mēs domājam par suni kā priekšmetu, tad dažas no tā īpašībām varētu būt krāsa, šķirne, vārds, svars utt. Un viņš kustētos, rej, spēlējas utt.
Tā kā programmā ir iekļauti reālās pasaules jēdzieni, piemēram, objekti, slēpšanās, mantošana utt., Objektorientētā programmēšana ir labi zināma. Tā kā vizualizācija ir tik līdzīga reālajiem apstākļiem, vizualizācija ir padarīta vienkāršāka.
Objektorientētas programmēšanas jēdzieni
Klases un objekti Python
Tāpat kā visas pārējās objektu orientētās valodas, Python ļauj izstrādāt klases objektu ģenerēšanai. Populārākie Python datu veidi, tostarp virknes, saraksti, vārdnīcas un citi objekti, ir iebūvētas klases.
Klase ir saistītu metožu un gadījumu mainīgo grupa, kas definē noteikta veida objektu. Klasi var uzskatīt par objekta modeli vai veidni. Mainīgos, kas veido klasi, sauc par atribūtiem.
Objekts ir klases dalībnieks, kam ir noteikta atribūtu kopa. Šī iemesla dēļ, izmantojot vienu un to pašu klasi, var izveidot jebkuru objektu skaitu.
Python klases tiek definētas, izmantojot vārdu klase, kam pēc tam seko klases nosaukums un kols. Papagaiļu klases ilustrācija varētu būt:
Šeit mēs deklarējam tukšo klasi Parrot, izmantojot klases atslēgvārdu. Mēs veidojam gadījumus no klasēm. Eksemplārs ir konkrēts objekts, kas izveidots no noteiktas klases. “Pass” bieži tiek izmantots kā rezerves kods, kura ieviešanas mēs šobrīd varam atteikties. Mēs varam izpildīt Python kodu, neradot kļūdu, izmantojot atslēgvārdu “pass”.
Klases instanču rezultāts ir objekts (instancē). Veidojot klasi, tiek definēts tikai objekta apraksts. Tā rezultātā netiek piešķirta krātuve vai RAM.
Papagaiļu klases objekta piemērs ir:
Obj šajā gadījumā ir Parrot klases objekts.
Pieņemsim, ka mēs zinām specifiku par papagaiļiem. Tagad mēs parādīsim, kā izveidot papagaiļu klasi un tās objektus.
Īpašā metode (__init__)
Metode, ko sauc par init, nosaka atribūtus, kuriem jābūt katram Parrot objektam (). Kad tiek izveidots jauns Parrot objekts, funkcija __init__ izveido objekta sākotnējo stāvokli, piešķirot vērtības, kuras mēs piegādājam objekta īpašībās.
Tātad katrs jaunais klases gadījums tiek inicializēts, izmantojot __init__(). Lai gan __init__() var pieņemt jebkādu skaitu parametru, self vienmēr ir pirmais parametrs.
Pašargumentā ir iekļauta atsauce uz aktīvās klases instanci. Pašparametrs, kas ir saistīts ar pašreizējā klases objekta adresi un dod mums piekļuvi tā (objekta) mainīgo datiem, to apzīmē.
piemērs 1
Iepriekš minētajā kodā mēs izveidojām klasi ar nosaukumu Parrot. Tālāk tiek definēti rekvizīti. Lietas īpašības ir tās īpašības. Šīs īpašības ir norādītas klases funkcijā __init__.
Kad objekts ir izveidots, inicializācijas metode ir tā, kas tiek izsaukta sākotnēji. Pēc tam tiek izveidoti klases Parrot gadījumi. Blaze un Wonda šajā gadījumā ir atsauces (vērtības) uz mūsu jaunajiem objektiem. __class .species ļauj mums piekļūt klases atribūtam.
Katram klases gadījumam ir vienādas īpašības. Gadījuma raksturlielumiem var piekļūt arī, izmantojot blaze.name un blaze.age. Tomēr visiem klases gadījumiem ir unikāli gadījumu atribūti.
piemērs 2
Metodes
Funkcijas, kas definētas klases pamattekstā, sauc par metodēm. Tie tiek izmantoti, lai norādītu, kā prece darbosies.
Iepriekš minētajā lietojumprogrammā () ir definētas divas metodes, dziedāt () un dejot. Tā kā tās tiek izsauktas instanču objektā, piemēram, liesmā, tās tiek sauktas par instances metodēm.
OOPS koncepcijas pamati
Četras objektorientētas programmēšanas pamatidejas ir:
- Mantojums
- Iekapsulēšana
- Polimorfisms
- Abstrakcija
Mantojums
Cilvēki jaundzimušajiem bieži saka, ka viņiem ir sejas īpašības, kas līdzinās viņu vecāku īpašībām vai ka viņi ir mantojuši īpašas iezīmes no saviem vecākiem.
Iespējams, ka esat arī novērojis, ka jums ir dažas kopīgas iezīmes ar saviem vecākiem. Situācija reālajā pasaulē ir diezgan līdzīga arī mantojumam.
Tomēr šajā gadījumā “vecāku klašu” raksturlielumi tiek nodoti “bērnu klasēm”. Šie aspekti šajā kontekstā tiek saukti par "īpašībām" un "metodēm".
Klase var iegūt savas metodes un atribūtus no citas klases, izmantojot paņēmienu, kas pazīstams kā mantošana. Mantojums ir process, kurā bērnu klase saņem vecāku klases īpašības.
Piemērs:
Iepriekšējā piemērā vecāku klasi Cilvēks ir mantojusi bērnu klase Zēns. Tā kā Boy manto no cilvēka, mēs varam piekļūt visām tā metodēm un atribūtiem, kad veidojam klases Boy instanci.
Zēnu klasē ir definēta arī metode skolaVārds. Vecāku klases objekts nevar piekļūt metodei schoolName. Tomēr metodi schoolName var izsaukt, izveidojot bērnu klases objektu (Boy).
Iekapsulēšana
Katram programmas mainīgajam globālās piekļuves nodrošināšana nav saprātīgs solis, strādājot ar klasēm un apstrādājot sensitīvus datus.
Nedodot programmai pilnīgu piekļuvi nevienam no šiem mainīgajiem lielumiem, iekapsulēšana nodrošina mehānismu, lai mēs iegūtu nepieciešamos mainīgos.
Metodes, kas ir definētas tieši šim mērķim, var izmantot, lai atjauninātu, rediģētu vai dzēstu datus no mainīgajiem. Šai programmēšanas metodei ir uzlabotas drošības un datu ievades kontroles priekšrocības.
Tālāk esošajā demonstrācijā skatiet, cik ātri var piekļūt mainīgajiem.
Polimorfisms
Pieņemsim, ka izmantojat tālruni, lai pārlūkotu Instagram plūsmas. Kad radās vēlme klausīties kādu mūziku, jūs piekļuvāt Spotify un sākāt atskaņot savu iecienītāko dziesmu.
Pēc kāda laika jūs saņēmāt zvanu, tāpēc apturējāt visu, ko darāt fonā, lai uz to atbildētu. Jūsu draugs piezvanīja un lūdza nosūtīt viņam īsziņu ar noteiktas personas tālruņa numuru.
Tātad jūs nosūtījāt viņam tālruņa numuru, izmantojot SMS, un turpinājāt savus uzdevumus. Vai esat kaut ko uztvēris? Tikai ar vienu ierīci — mobilo tālruni — varat pārlūkot plūsmas, klausīties mūziku, pieņemt un veikt tālruņa zvanus, kā arī sūtīt ziņojumus.
Tāpēc polimorfisms ir salīdzināms ar to. Poli nozīmē daudz, un morfs apzīmē dažādas formas. Tāpēc polimorfisms kopumā attiecas uz kaut ko ar dažādām formām.
Vai “kaut kas”, kas atkarībā no apstākļiem var izrādīt dažādas uzvedības izpausmes. Programmā OOPS polimorfisms apraksta funkcijas ar vienādiem nosaukumiem, bet atšķirīgu uzvedību. Alternatīvi, cits funkcijas paraksts ar tādu pašu funkcijas nosaukumu (funkcijai nodotie parametri).
Piemērs:
Šeit mēs varam izmantot mainīgo dzīvnieku, lai atkārtotu zebras un truša objektus, izmantojot to attiecīgās gadījumu metodes. Rezultātā gan zebra, gan truša uzvedība (krāsa() un ēd()) šeit tiek attēlota ar vienu mainīgo, ko sauc par dzīvnieku. Tāpēc tas ievēro polimorfisma noteikumus.
Abstrakcija
Jūs, visticamāk, izmantojat klēpjdatoru, tālruni vai planšetdatoru, lai lasītu šo saturu. Lasot to, jūs, iespējams, veicat piezīmes, pasvītrot galvenos fragmentus un, iespējams, glabājat kādu informāciju savos personiskajos failos.
Viss, ko jūs varat redzēt, izlasot šo, ir “ekrāns” ar datiem, kas tiek parādīti jums. Jūs vienkārši redzat tastatūras taustiņus rakstīšanas laikā, tāpēc jums nav jāuztraucas par iekšējām smalkumiem, piemēram, par to, kā, nospiežot taustiņu, šis vārds var parādīties ekrānā.
Alternatīvi, kā, nospiežot pogu ekrānā, var atvērt jaunu cilni.
Tāpēc viss, ko mēs varam novērot šajā situācijā, ir abstrakts. Mēs varam redzēt tikai rezultātu, ko tas rada, nevis iekšējās sarežģītības (kas mums patiesībā ir svarīgas).
Līdzīgi tam, abstrakcija tikai atklāj funkcijas, kas visam piemīt, vienlaikus slēpjot jebkādas ieviešanas vai iekšējās detaļas.
Abstrakcijas galvenais mērķis ir slēpt fona informāciju un jebkādu svešu datu ieviešanu, lai cilvēki redzētu tikai to, kas viņiem ir jāredz. Tas palīdz pārvaldīt koda sarežģītību.
Piemērs:
Šeit ir ar transportlīdzekli saistīta abstraktā klase. Tā kā tas ir mantots no abstraktās klases ABC, tas ir abstrakts. Tā kā abstraktās metodes nav definētas vai paliek tukšas, klasei Transportlīdzeklis ir abstrakta metode, ko sauc par riteņu skaitu un kurai trūkst definīcijas.
Viņi paredz klases, kas manto abstraktās klases, lai nodrošinātu metodes ieviešanu.
OOPS koncepciju priekšrocības
- Iekapsulējot, tiek panākta augsta drošība un datu privātums.
- Elastība, izmantojot daudzas vienas klases polimorfās versijas.
- Augsto koda sarežģītības līmeni samazināja abstrakcija.
- Tā vietā, lai izsijātu simtiem koda rindiņu, lai atrastu vienu problēmu, programmēšanas modularitāte padara atkļūdošanu vienkāršu.
- Koda atkārtotu izmantošanu izraisa vecāku klases rekvizītu pārmantošana pakārtotajā klasē.
- Efektīva problēmu risināšana ir iespējama, jo mēs veidojam klases, kas veic nepieciešamās darbības katrai mini problēmai. Šo problēmu var atrisināt vēl ātrāk, jo mēs varam atkārtoti izmantot šīs klases.
Secinājumi
Noslēgumā mēs uzzinājām par OOPS idejām Python, šobrīd karstākajā programmēšanas paradigmā.
Pēc šī raksta izlasīšanas jūs noteikti sapratāt, ka OOPS paradigma pilnībā attiecas uz ideju par klasēm un objektiem. un OOPS jēdzieni, piemēram, iekapsulēšana, polimorfisms, mantošana un abstrakcija.
Atstāj atbildi