Bland utvecklare har objektorienterad programmering dragit till sig ett stort antal följare. Populära datorspråk Python följer också det objektorienterade paradigmet.
Det handlar om att definiera objekt och klasser i Python, som utgör grunden för OOPs principer. I den här handledningen om "objektorienterad programmering i Python" kommer du att lära dig hur du deklarerar Python-klasser, skapar objekt från dem och använder de fyra OOP-teknikerna.
Så, första sak först.
Vad är objektorienterad programmering?
Huvudfokus för objektorienterad programmering (OOP) är skapandet av "objekt". En samling av sammankopplade variabler och funktioner utgör ett objekt.
Dessa variabler kallas ofta för objektets attribut, och dess beteenden kallas ofta för dess funktioner. Dessa artiklar ger applikationen en mer effektiv och begriplig struktur. En bil är ett exempel på en vara.
Om bilen var ett föremål, skulle dess attribut inkludera saker som dess färg, modell, pris, märke, etc. Dessutom skulle den accelerera, sakta ner och växla.
En annan illustration: Om vi tänker på en hund som ett föremål, kan några av dess egenskaper vara färg, ras, namn, vikt, etc. Och han skulle röra sig, skälla, leka osv.
Eftersom det införlivar verkliga koncept som objekt, gömmer sig, arv, etc. i programmering, är objektorienterad programmering välkänd. Eftersom det är så likt verkliga omständigheter görs visualisering enklare.
Objektorienterade programmeringskoncept
Klasser och objekt i Python
Liksom alla andra objektorienterade språk låter Python dig designa klasser för att generera objekt. De mest populära datatyperna i Python, inklusive strängar, listor, ordböcker och andra objekt, är inbyggda klasser.
En klass är en grupp länkade metoder och instansvariabler som definierar en viss typ av objekt. En klass kan ses som modellen eller mallen för ett objekt. Variablerna som utgör en klass kallas attribut.
Ett objekt är en medlem av en klass som har en definierad uppsättning attribut. På grund av detta kan valfritt antal objekt skapas med samma klass.
Python-klasser definieras med hjälp av ordklassen, som sedan följs av klassnamnet och ett kolon. En illustration av en papegojklass kan vara:
Här deklarerar vi den tomma klassen Parrot med hjälp av klassnyckelordet. Vi skapar instanser från klasser. En instans är ett visst objekt som gjordes från en viss klass. 'pass' används ofta som en stand-in för kod vars implementering vi kan avstå från för tillfället. Vi kan köra Python-koden utan att skapa ett fel genom att använda nyckelordet "pass".
En instansiering av en klass resulterar i ett objekt (instans). Endast objektets beskrivning definieras när en klass skapas. Som ett resultat tilldelas ingen lagring eller RAM-minne.
Ett exempel på ett papegojklassobjekt är:
Obj är ett Parrot-klassobjekt i det här fallet.
Låt oss säga att vi vet detaljer om papegojor. Vi kommer nu att demonstrera hur man skapar papegojklassen och dess objekt.
Specialmetod ( __init__ )
En metod som kallas init definierar de attribut som varje Parrot-objekt måste ha (). När ett nytt Parrot-objekt skapas skapar funktionen __init__ objektets initiala tillstånd genom att tilldela de värden vi tillhandahåller inom objektets egenskaper.
Så, varje ny instans av klassen initieras genom att använda __init__(). Även om __init__() kan acceptera hur många parametrar som helst, är self alltid den första parametern.
En referens till den aktiva klassinstansen ingår i självargumentet. Self-parametern, som länkar till adressen för det aktuella objektet i en klass och ger oss tillgång till dess (objektets) variablers data, betyder det.
Exempelvis 1
Vi etablerade en klass som heter Parrot i ovanstående kod. Därefter definieras egenskaper. En saks egenskaper är dess egenskaper. Klassens __init__ funktion är där dessa egenskaper specificeras.
När ett objekt bildas är initialiseringsmetoden den som anropas initialt. Sedan skapas instanser av klassen Parrot. Blaze och Wonda i det här fallet är referenser (värden) till våra nya objekt. __class .species tillåter oss att komma åt attributet class.
Varje instans av en klass har samma egenskaper. Förekomstens egenskaper kan också nås med blaze.name och blaze.age. Alla instanser av en klass har dock unika instansattribut.
Exempelvis 2
Metoder
Funktioner som definieras i en klasskropp kallas metoder. De används för att specificera hur ett föremål ska bete sig.
Två metoder, sing() och dance, definieras i ovannämnda ansökan (). Eftersom de anropas på ett instansobjekt, såsom flame, kallas dessa instansmetoder.
Grunderna i OOPS-konceptet
De fyra kärnidéerna för objektorienterad programmering är:
- Arv
- inkapsling
- polymorfism
- Abstraktion
Arv
Människor berättar ofta för nyfödda att de har ansiktsegenskaper som liknar deras föräldrar eller att de har ärvt särskilda egenskaper från sina föräldrar.
Det är möjligt att du också har observerat att du delar några egenskaper med dina föräldrar. Den verkliga situationen är ganska lik arv också.
Men i det här fallet överförs "föräldraklassernas" egenskaper till "barnklasserna". Dessa aspekter kallas i detta sammanhang för "egenskaper" och "metoder".
En klass kan härleda sina metoder och attribut från en annan klass genom att använda tekniken som kallas arv. Arv är processen där en barnklass får egenskaperna hos en förälderklass.
Exempelvis:
Föräldraklassen Human ärvs av barnklassen Pojke i exemplet ovan. Eftersom Boy ärver från Human kan vi komma åt alla dess metoder och attribut när vi skapar en instans av Boy-klassen.
I klassen Pojke har man även definierat en metod som heter schoolName. Det överordnade klassobjektet kan inte komma åt metoden schoolName. Metoden schoolName kan dock anropas genom att skapa ett barnklassobjekt (Boy).
inkapsling
Att ge varje variabel i programmet global åtkomst är inte ett klokt drag när man arbetar med klasser och hanterar känslig data.
Utan att ge programmet fullständig tillgång till någon av dessa variabler, ger inkapsling en mekanism för oss att erhålla de nödvändiga variablerna.
Metoder som är explicit definierade för ändamålet kan användas för att uppdatera, redigera eller ta bort data från variabler. Denna programmeringsmetod har fördelarna med förbättrad säkerhet och kontroll över datainmatningen.
Se hur snabbt variabler kan vara tillgängliga i demonstrationen nedan:
polymorfism
Låt oss säga att du använder din telefon för att bläddra i Instagram-flöden. När du blev sugen på att lyssna på lite musik gick du in på Spotify och började spela din favoritlåt.
Efter en tid fick du ett samtal, så du pausade vad du än gjorde i bakgrunden för att svara på det. Din vän ringde och bad dig att sms:a en viss persons telefonnummer.
Så du skickade honom telefonnumret via SMS och fortsatte med dina uppgifter. Har du fattat något? Med bara en enhet – din mobiltelefon – kan du surfa genom flöden, lyssna på musik, ta och ringa telefonsamtal och skicka meddelanden.
Därför är polymorfism jämförbar med det. Poly betyder många, och morph betecknar olika former. Därför hänvisar polymorfism som helhet till något med olika former.
Eller "något" som, beroende på omständigheterna, kan uppvisa en mängd olika beteenden. I OOPS beskriver polymorfism funktioner med samma namn men distinkta beteenden. Alternativt en annan funktionssignatur med samma funktionsnamn (parametrar som skickas till funktionen).
Exempelvis:
Här kan vi använda det variabla djuret för att iterera över objekten hos Zebran och Kaninen, med deras respektive instansmetoder. Som ett resultat av detta representeras beteendet (color() & eats()) för både zebran och kaninen här av en enda variabel som kallas djur. Den följer därför polymorfismreglerna.
Abstraktion
Du använder troligen en bärbar dator, telefon eller surfplatta för att läsa detta innehåll. När du läser den, gör du förmodligen också anteckningar, understryker viktiga stycken och kanske lagrar viss information i dina personliga filer.
Allt du kan se när du läser detta är en "skärm" med data som visas för dig. Du ser bara tangentbordets tangenter medan du skriver, så du behöver inte oroa dig för interna subtiliteter som hur ett tryck på en tangent kan få det ordet att visas på skärmen.
Alternativt, hur ett tryck på en knapp på skärmen kan starta en ny flik.
Därför är allt vi kan observera i denna situation abstrakt. Vi kan bara se resultatet det skapar och inte de inre förvecklingarna (som faktiskt betyder något för oss).
Liknande detta avslöjar abstraktion bara de funktioner som allt har samtidigt som det döljer eventuella implementeringar eller interna detaljer.
Abstraktionens huvudsakliga mål är att dölja bakgrundsinformation och all extern dataimplementering så att människor bara ser det de behöver se. Det hjälper till att hantera kodens komplexitet.
Exempelvis:
En fordonsrelaterad abstrakt klass finns här. Eftersom den ärver från den abstrakta klassen ABC är den abstrakt. Eftersom abstrakta metoder inte är definierade eller förblir tomma, har klassen Fordon en abstrakt metod som kallas no of wheels som saknar definition.
De förutser klasserna som ärver de abstrakta klasserna för att ge metodens implementering.
Fördelar med OOPS-koncept
- Genom inkapsling uppnås hög säkerhet och datasekretess.
- Flexibilitet i att ha många polymorfa versioner av samma klass.
- Den höga nivån av kodkomplexitet reducerades genom abstraktion.
- Istället för att sålla igenom hundratals rader kod för att lokalisera ett enda problem, gör programmeringens modularitet felsökning enkel.
- Kodåteranvändning orsakas av en underordnad klasss arv av överordnade klassegenskaper.
- Effektiv problemlösning är möjlig eftersom vi skapar klasser som gör nödvändiga åtgärder för varje miniproblem. Följande problem kan lösas ännu snabbare eftersom vi kan återanvända dessa klasser.
Slutsats
Sammanfattningsvis lärde vi oss om OOPS-idéer i Python, det hetaste programmeringsparadigmet just nu.
Efter att ha läst detta måste du ha insett att OOPS-paradigmet helt handlar om idén om klasser och objekt. och OOPS-begrepp som inkapsling, polymorfism, arv och abstraktion.
Kommentera uppropet