En nybörjarguide till Python Objektorienterad programmering

En nybörjarguide till Python Objektorienterad programmering / Programmering

Python används i allt från Raspberry Pi till maskininlärning. Om du vill arbeta med något stort projekt måste du dock veta hur Python arbetar med objektorienterad programmering (OOP). Denna artikel kommer att täcka de grundläggande grunderna du behöver veta.

Om du inte är faktiskt in i programmeringen, varför inte kolla på de bästa Monty Python-skisserna istället 8 av de bästa Monty Python's Flying Circus Sketches 8 av de bästa Monty Python's Flying Circus Sketches [Stuff to Watch] Mycket några andra komedirupper har brutit så mycket nytt underlag som Monty Python gjorde när de först sändes på BBC i 1969. Inte bara var humor frisk, vällevererad och väldigt mycket ... Läs mer? De inspirerade trots allt språket!

Vänta, Python är inte ett riktigt språk?

Låt oss få en sak klar: Python ÄR ett riktigt programmeringsspråk, det är populärt, och det växer snabbt. Bara för att det läser som pseudokod och du kan koda Minecraft på Pi med det. Läs Python och Elektronik med Minecraft Pi Edition Lär dig Python och Elektronik med Minecraft Pi Edition Har du alltid velat lära dig att koda men visste inte var du ska börja? Lär dig hur man kontrollerar Minecraft på Raspberry Pi med Python och lite enkel elektronik. Läs mer, det betyder inte att du bör rabatt det som ett mindre språk.

OOP är hörnstenen i modern mjukvaruutveckling, och Python är mer än kapabel att hålla upp. Det kan göra en eller två saker annorlunda än andra vanliga språk, men låt inte det sätta dig av.

Denna handledning tar en grundläggande kunskap om Python, men vi täcker alla komplexa saker längs vägen. Om du är ny på Python, varför inte titta på dessa knep för att lära dig ett nytt programmeringsspråk. 7 Användbara tricks för att behärska ett nytt programmeringsspråk. 7 Användbara tricks för att behärska ett nytt programmeringsspråk Det är okej att vara överväldigad när du lär dig att koda. Du kommer noga att glömma saker så fort du lär dig dem. Dessa tips kan hjälpa dig att bättre behålla all den nya informationen. Läs mer, eller hur är det med ett enkelt projekt som att läsa och skriva till Google Sheets med Python Hur man läser och skriver till Google Sheets med Python Hur man läser och skriver till Google Sheets Med Python Python kan tyckas konstigt och ovanligt, men det är lätt att lära och använda. I den här artikeln visar jag dig hur du läser och skriver till Google Sheets med Python. Läs mer ?

Python Förutsättningar och inställningar

Innan du börjar, kanske du vill få din Python-utvecklingsmiljö. Vi använder Python 3.6.5, och medan du kan använda äldre versioner, har du mindre problem att följa med om du använder en ganska ny version.

Du vill skapa en virtuell miljö Lär dig hur du använder Pythons virtuella miljö Lär dig hur du använder Pythons virtuella miljö Oavsett om du är en erfaren Python-utvecklare, eller om du bara har börjat, är det viktigt att du lär dig hur du installerar en virtuell miljö. vilket Python-projekt som helst. Läs mer om du inte redan har en, och installera PIP för Python. Så här installerar du PIP för Python på Windows, Mac och Linux. Så här installerar du PIP för Python på Windows, Mac och Linux. Många Python-utvecklare är beroende av ett verktyg som heter PIP för Python för att göra allt mycket enklare och snabbare. Så här installerar du PIP. Läs mer om det inte är installerat (det kommer med de flesta moderna installationer av Python though). När du har fått de här inställningarna är det bra att gå. Låt oss börja!

Grunderna i Python: Klasser

en klass är det grundläggande byggstenen för OOP. En klass är som en plan eller en ritning. De definierar egenskaperna hos ett objekt Vad är objektorienterad programmering? Grunderna förklaras i Laymans villkor Vad är objektorienterad programmering? Grunderna förklaras i Laymans villkor De flesta moderna programmeringsspråk stöder "OOP-paradigmet" med objektorienterad programmering. Men vad är OOP och varför är det så användbart? Läs mer . Om du till exempel har en bilklass kan det anges att det finns fyra hjul, minst ett säte och en motor.

Så här gör du en klass i Python:

klass Fordon: "" "Den här klassen definierar fordon." "" passera 

Enkel rätt? Det är några saker som händer här. Lägg märke till kommentaren högst upp i klassen. Detta är en speciell kommentar som heter a docstring. Det borde förklara lite om din kod. Genom att använda de trefaldiga citaterna (“””), du säger Python att detta är en docstring.

De passera sökord berättar att Python gör ingenting. Det är ett speciellt ord, och du kan tänka på det som en todo. Det kommer att göra din kod köra, men det gör inte faktiskt någonting.

Om du kör den här koden ser du att inget händer. Du behöver instansiera du klass. Detta innebär effektivt att gå och bygga ett objekt baserat på planen definierad i klassen. Du kan skapa så många kopior som du vill, var och en med olika egenskaper. Så här gör du det:

red_car = Vehicle ()

Om du kör det här igen ser du att ingenting händer. Koden fungerar korrekt, men du har inte sagt det att göra något märkbart. De Fordon klassen definierar ritningar för ett fordon, och den senaste raden skapar ett fordonsobjekt och ger det ett namn på röd bil.

Det är möjligt att göra så många föremål som du vill:

red_car = Vehicle () green_car = Fordon () blue_car = Fordon ()

Låt oss lägga till lite mer kod. Lägg till en metod som heter __i det__ till Fordon klass:

klass "Fordon:" "" Den här klassen definierar fordon. "" "def __init __ (själv, färg =" vanlig "):" "" Ange några anpassade bilegenskaper "" " färg red_car = Fordon () green_car = Fordon () blue_car = Fordon ()

Var särskilt uppmärksam på detta __i det__ metod. Den måste börja och sluta med två understreck. Detta är en speciell metod i Python. Det kallas automatiskt när du skapar ett nytt objekt. Om du kör denna kod visas orden “Ny bil gjord!” tre gånger.

Till sist, __i det__ tar ett anpassat argument som heter Färg. Liknande tecken och sträng omedelbart efter berätta Python för att ställa in färgen “enkel” om inte specificerat Du kan ändra dina instanser för att ställa in din bilfärg vid skapandet:

red_car = Fordon (färg = 'röd') green_car = Fordon (färg = 'grön') blue_car = Fordon (färg = 'blå')

Om du skriver ut bilens färg ser du att varje instans har en annan färg, även om alla tre gjordes till samma specifikation (klassen). Python låter dig komma åt nästan alla variabler eller objekt - inte många andra språk gör att du kan göra detta:

print (red_car.color) print (green_car.color) print (blue_car.color)

Det fungerar eftersom du tilldelade Färg till self.color. Själv är ett annat speciellt nyckelord i Python, och det hänvisar till varje enskild förekomst av en klass. När du använder dig själv kan du ställa in eller komma åt data som är unika för den förekomsten. Den röda bilen har en röd färg, till exempel.

Ändra din __i det__ Metod för att lagra bilstörningen i en variabel:

self.noise = 'Vroooom'

För att skriva ut bilbullret kunde du bara komma åt ljud variabel, som du gjorde med färg, men det här är inte den bästa idén. Om du, när du kör bil, vill ha en annan kod att köra samtidigt, kanske kod som du inte har skrivit ännu? Eller vad om du vill ändra hur en bil kör i framtiden? Genom att skapa en fungera (även känd som a metod), du kan städa kontrollera hur sakerna fungerar. Lägg till detta under din __i det__ metod:

def drive (egen): print (self.noise)

Du kan helt enkelt ringa den här metoden:

red_car.drive ()

När du ringer till kör Metod, Python kommer att skriva ut ljudet. Du kan expandera detta för att utföra alla aktiviteter, men lämna det som för tillfället.

Bra gjort! Hittills borde du ha ett grepp om grunden. Du ska kunna skapa och använda dina egna klasser, var och en med sina egna unika förmågor och funktioner.

Vad om privata variabler i python?

Privata objekt är mycket vanliga på de flesta andra språk. De är helt enkelt variabler eller funktioner som inte kan nås utanför klassen. De kan vara kod som kräver särskilda villkor som ska uppfyllas före användning, eller bara utformad för internt bruk. Oavsett orsaken kan instanser inte komma åt privata medlemmar ... om du inte kodar i Python.

Python har inga privata medlemmar. I stället bygger Python på ett hederssystem: “Vi samtycker alla med vuxna.” Python programmerare förstår att du kanske vill tinker med en känslig internalsida, och det är okej, så ingenting borde någonsin vara otillgängligt.

Python har dock en accepterad konvention för att markera vissa variabler som “privat” i den mening att “Denna variabel är för intern användning och du behöver nog inte röra den.” Konventionen är att prefixa variabla namn med ett understreck:

_some_secret_variable = 42

Detta fungerar som en varning till andra programmerare. Python kommer inte att hindra dig att komma åt detta, men understrecket rekommenderar dig att detta inte var utformat för att användas på detta sätt, och du bör fortsätta på egen risk.

Det är ibland Python-sättet att tinker med dolda saker, men du riskerar att saker kanske inte fungerar ordentligt.

Förstå arv i python

Arv är ett annat sätt att minska dubbelarbete och återanvändningskod. Tänk på ett föräldra- och barnförhållande, arv tillåter barn att dela gemensam kod med förälder. Låt oss genomföra en elbil, som ärar från föräldern.

Lägg till den här koden under din Fordon klass:

klass ElectricCar (Vehicle): "" "Elektrisk fordonsklass." "" def laddning (själv): tryck ('Zzz') electric_car = ElectricCar () electric_car.charge () electric_car.noise = 'Whoosh' electric_car.drive

Efter Elbil definieras, Fordon klass anges inom två parenteser. Detta berättar Python det Elbil är ett barn av Fordon. Detta ger tillgång till alla data och metoder som anges i Fordon.

Elbilen har sina egna speciella metoder. Det kan ladda (något som andra fordon inte kan göra). Genom att byta bilbuller och sedan köra kan du se att elbilen ger ett annat ljud, och du behövde inte definiera drivmetoden. Detta beror på att enheten är ärvd från föräldern.

Utöka din Python Knowledge vidare

Dessa exempel har visat hur lätt OOP kan vara i Python. Vi har bara täckt de allra flesta grunderna, men när du har fått dem ner är resten lätt.

Om du vill fortsätta lära dig Python, eller kanske lägga till dessa OOP-färdigheter, varför inte titta på arrayer och listor i Python, eller hur får du Python och JavaScript för att kommunicera?

Om allt detta har lämnat dig som vill ha mer, glöm inte att kolla in dessa bästa webbplatser för att lära dig Python De 5 bästa webbplatserna att lära dig Python Programmering De 5 bästa webbplatserna att lära sig Python Programmering Vill du lära dig Python programmering? Här är de bästa sätten att lära sig Python online, varav många är helt gratis. Läs mer .

Utforska mer om: Objektorienterad programmering, programmering, Python.