Indholdsfortegnelse[Skjule][At vise]
Blandt udviklere har objektorienteret programmering tiltrukket et betydeligt antal følgere. Populært computersprog Python følger ligeledes det objektorienterede paradigme.
Det beskæftiger sig med at definere objekter og klasser i Python, som danner grundlaget for OOPs principper. I denne tutorial om "objektorienteret programmering i Python" lærer du, hvordan du erklærer Python-klasser, opretter objekter ud fra dem og bruger de fire OOPs-teknikker.
Så, først ting først.
Hvad er objektorienteret programmering?
Hovedfokus for objektorienteret programmering (OOP) er skabelsen af "objekter". En samling af indbyrdes forbundne variabler og funktioner udgør et objekt.
Disse variabler omtales ofte som objektets attributter, og dets adfærd omtales ofte som dets funktioner. Disse elementer giver applikationen en mere effektiv og forståelig struktur. En bil er et eksempel på en vare.
Hvis bilen var en genstand, ville dens egenskaber omfatte ting som dens farve, model, pris, mærke osv. Derudover ville den accelerere, sænke farten og skifte gear.
En anden illustration: Hvis vi tænker på en hund som en genstand, så kan nogle af dens karakteristika være farve, race, navn, vægt osv. Og han ville bevæge sig rundt, gø, lege osv.
Fordi det inkorporerer virkelige begreber som objekter, skjul, arv osv. i programmering, er objektorienteret programmering velkendt. Fordi det minder så meget om omstændighederne i den virkelige verden, er visualisering gjort enklere.
Objektorienterede programmeringskoncepter
Klasser og objekter i Python
Som alle andre objektorienterede sprog giver Python dig mulighed for at designe klasser til at generere objekter. De mest populære datatyper i Python, inklusive strenge, lister, ordbøger og andre objekter, er indbyggede klasser.
En klasse er en gruppe af sammenkædede metoder og instansvariabler, der definerer en bestemt slags objekt. En klasse kan ses som modellen eller skabelonen for et objekt. De variable, der udgør en klasse, er kendt som attributter.
Et objekt er et medlem af en klasse, der har et defineret sæt attributter. På grund af dette kan et hvilket som helst antal objekter oprettes ved hjælp af den samme klasse.
Python-klasser defineres ved hjælp af ordklassen, som derefter efterfølges af klassens navn og et kolon. En illustration af en papegøjeklasse kan være:
Her erklærer vi den tomme klasse Parrot ved hjælp af class nøgleordet. Vi opretter instanser fra klasser. En instans er et bestemt objekt, der er lavet fra en bestemt klasse. 'pass' bruges ofte som en stand-in for kode, hvis implementering vi kan give afkald på i øjeblikket. Vi kan udføre Python-koden uden at rejse en fejl ved at bruge nøgleordet "pass".
En instansiering af en klasse resulterer i et objekt (instans). Kun objektets beskrivelse er defineret, når en klasse oprettes. Som et resultat tildeles der ingen lagerplads eller RAM.
Et eksempel på et papegøje-klasseobjekt er:
Obj er et Parrot-klasseobjekt i dette tilfælde.
Lad os sige, at vi kender detaljerne om papegøjer. Vi vil nu demonstrere, hvordan man opretter papegøjeklassen og dens objekter.
Speciel metode (__init__)
En metode kaldet init definerer de attributter, som hvert Parrot-objekt skal have (). Når et nyt Parrot-objekt dannes, skaber funktionen __init__ objektets begyndelsestilstand ved at tildele de værdier, vi leverer inden for objektets egenskaber.
Så hver ny forekomst af klassen initialiseres ved at bruge __init__(). Selvom __init__() kan acceptere et hvilket som helst antal parametre, er self altid den første parameter.
En reference til den aktive klasseinstans er inkluderet i selvargumentet. Self-parameteren, som linker til adressen på det aktuelle objekt i en klasse og giver os adgang til dets (objektets) variables data, betyder det.
Eksempel 1
Vi etablerede en klasse kaldet Parrot i ovenstående kode. Dernæst defineres egenskaber. En tings egenskaber er dens egenskaber. Klassens __init__ funktion er, hvor disse karakteristika er specificeret.
Når et objekt dannes, er initialiseringsmetoden den, der kaldes til at begynde med. Derefter oprettes forekomster af Parrot-klassen. Blaze og Wonda er i dette tilfælde referencer (værdier) til vores nye objekter. __class .species giver os adgang til class-attributten.
Hver forekomst af en klasse har de samme karakteristika. Forekomstens karakteristika kan også tilgås ved hjælp af blaze.name og blaze.age. Alle forekomster af en klasse har dog unikke forekomstattributter.
Eksempel 2
Metoder
Funktioner defineret inde i en klasses krop kaldes metoder. De er ansat til at specificere, hvordan en vare vil opføre sig.
To metoder, sing() og dance, er defineret i den førnævnte ansøgning (). Fordi de påkaldes på et instansobjekt, såsom flamme, omtales disse som instansmetoder.
Fundamenterne i OOPS-konceptet
De fire kerneideer i objektorienteret programmering er:
- Arv
- Indkapsling
- polymorfi
- abstraktion
Arv
Folk fortæller ofte nyfødte, at de har ansigtskarakteristika, der ligner deres forældres, eller at de har arvet særlige træk fra deres forældre.
Det er muligt, at du også har observeret, at du deler nogle få karakteristika med dine forældre. Situationen i den virkelige verden ligner også arv.
Men i dette tilfælde overføres "forældreklasserne"' karakteristika til "barneklasserne". Disse aspekter betegnes i denne sammenhæng som "egenskaber" og "metoder".
En klasse kan udlede sine metoder og attributter fra en anden klasse ved at bruge teknikken kendt som arv. Arv er processen, hvor en børneklasse modtager egenskaberne fra en overordnet klasse.
Eksempel:
Forældreklassen Human arves af børneklassen Dreng i eksemplet ovenfor. Fordi Boy arver fra Human, kan vi få adgang til alle dens metoder og attributter, når vi opretter en forekomst af Boy-klassen.
I drengeklassen er der også defineret en metode kaldet schoolName. Det overordnede klasseobjekt kan ikke få adgang til metoden schoolName. SchoolName-metoden kan dog kaldes ved at oprette et underordnet klasseobjekt (Boy).
Indkapsling
At give enhver variabel i programmet global adgang er ikke et klogt træk, når man arbejder med klasser og håndterer følsomme data.
Uden at give programmet fuldstændig adgang til nogen af disse variabler, giver indkapsling en mekanisme til, at vi kan opnå de nødvendige variabler.
Metoder, der er defineret eksplicit til formålet, kan bruges til at opdatere, redigere eller slette data fra variabler. Denne programmeringsmetode har fordelene ved øget sikkerhed og kontrol over datainputtet.
Se, hvor hurtigt variabler kan være tilgængelige i demonstrationen nedenfor:
polymorfi
Lad os sige, at du bruger din telefon til at gennemse Instagram feeds. Da du fik lyst til at lytte til noget musik, åbnede du Spotify og begyndte at spille din yndlingssang.
Efter et stykke tid modtog du et opkald, så du holdt pause, hvad end du lavede i baggrunden for at besvare det. Din ven ringede og bad dig sende en sms til en bestemt persons telefonnummer.
Så du sendte ham telefonnummeret via SMS og fortsatte med dine opgaver. Har du fået fat i noget? Med kun én enhed – din mobiltelefon – kan du surfe gennem feeds, lytte til musik, tage og foretage telefonopkald og sende beskeder.
Derfor er polymorfisme sammenlignelig med det. Poly betyder talrige, og morph betegner forskellige former. Derfor refererer polymorfi som helhed til noget med forskellige former.
Eller "noget", der afhængigt af omstændighederne kan udvise en række forskellige adfærdsmønstre. I OOPS beskriver polymorfi funktioner med de samme navne, men distinkt adfærd. Alternativt en anden funktionssignatur med samme funktionsnavn (parametre videregivet til funktionen).
Eksempel:
Her kan vi bruge det variable dyr til at iterere på tværs af objekterne fra Zebraen og Kaninen ved hjælp af deres respektive instansmetoder. Som et resultat heraf er adfærden (farve() & spiser()) for både zebraen og kaninen repræsenteret her af en enkelt variabel kaldet dyr. Den overholder derfor polymorfi-reglerne.
abstraktion
Du bruger højst sandsynligt en bærbar computer, telefon eller tablet til at læse dette indhold. Mens du læser det, tager du formentlig også noter, understreger vigtige passager og gemmer måske nogle oplysninger i dine personlige filer.
Alt du kan se, når du læser dette, er en "skærm" med de data, der bliver vist for dig. Du ser bare tastaturets taster, mens du skriver, så du ikke behøver at bekymre dig om interne finesser, såsom hvordan et tryk på en tast kan få det ord til at vises på skærmen.
Alternativt, hvordan et tryk på en knap på din skærm kan starte en ny fane.
Derfor er alt, hvad vi kan observere i denne situation, abstrakt. Vi kan kun se det resultat, det skaber, og ikke de indre forviklinger (som faktisk betyder noget for os).
I lighed med dette afslører abstraktion kun de funktioner, som alt har, mens den skjuler eventuelle implementeringer eller interne detaljer.
Abstraktions hovedformål er at skjule baggrundsinformation og enhver uvedkommende dataimplementering, så folk kun ser det, de har brug for at se. Det hjælper med at styre kodens kompleksitet.
Eksempel:
En køretøjsrelateret abstrakt klasse er til stede her. Fordi det arver fra den abstrakte klasse ABC, er det abstrakt. Fordi abstrakte metoder ikke er defineret eller forbliver tomme, har klassen Vehicle en abstrakt metode kaldet no of wheels, der mangler en definition.
De forudser de klasser, der arver de abstrakte klasser, for at give metodens implementering.
Fordele ved OOPS-koncepter
- Ved indkapsling opnås høj sikkerhed og databeskyttelse.
- Fleksibilitet ved at have mange polymorfe versioner af samme klasse.
- Det høje niveau af kodekompleksitet blev reduceret ved abstraktion.
- I stedet for at gennemsøge hundredvis af linjer kode for at lokalisere et enkelt problem, gør programmeringens modularitet fejlfinding enkel.
- Genbrug af kode er forårsaget af en underklasses arv af overordnede klasseejendomme.
- Effektiv problemløsning er mulig, fordi vi opretter klasser, der udfører de nødvendige handlinger for hvert miniproblem. Følgende problem kan løses endnu hurtigere, da vi kan genbruge disse klasser.
Konklusion
Afslutningsvis lærte vi om OOPS-ideer i Python, det hotteste programmeringsparadigme lige nu.
Efter at have læst dette, må du have indset, at OOPS-paradigmet udelukkende beskæftiger sig med ideen om klasser og objekter. og OOPS-begreber som indkapsling, polymorfi, arv og abstraktion.
Giv en kommentar