En nybegynners guide til Python Object Oriented Programming
Python brukes i alt fra Raspberry Pi til maskinlæring. Hvis du vil jobbe med et stort prosjekt, må du imidlertid vite hvordan Python jobber med objektorientert programmering (OOP). Denne artikkelen vil dekke det grunnleggende du trenger å vite.
Hvis du ikke egentlig er i programmering, hvorfor ikke ta en titt på de beste Monty Python-skissene i stedet 8 av Best Monty Python's Flying Circus Sketches [Stuff å se] 8 av de beste Monty Python's Flying Circus Sketches [Stuff to Watch] Very få andre komedie-tropper har ødelagt så mye nytt grunnlag som Monty Python gjorde da de først ble sendt på BBC i 1969. Ikke bare var humor frisk, vellevert og veldig, veldig ... Les mer? De inspiserte språket, tross alt!
Vent, Python er ikke et ekte språk?
La oss få en ting klar: Python ER et ekte programmeringsspråk, det er populært, og det vokser raskt. Bare fordi det leser som pseudokode og du kan kode Minecraft på Pi med det. Lær Python og Elektronikk med Minecraft Pi Edition Lær Python og Elektronikk med Minecraft Pi Edition Har du alltid ønsket å lære å kode, men visste ikke hvor du skal starte? Lær hvordan du kontrollerer Minecraft på Raspberry Pi ved hjelp av Python og noen enkle elektronikk. Les mer, det betyr ikke at du bør diskutere det som et mindre språk.
OOP er hjørnesteinen i moderne programvareutvikling, og Python er mer enn i stand til å holde opp. Det kan gjøre en eller to ting annerledes enn andre vanlige språk, men ikke la det sette deg av.
Denne opplæringen tar utgangspunkt i grunnleggende kunnskap om Python, men vi vil dekke alle komplekse ting underveis. Hvis du er ny i Python, hvorfor ikke se på disse triksene for å lære et nytt programmeringsspråk. 7 Nyttige triks for å mestre et nytt programmeringsspråk. 7 Nyttige triks for å mestre et nytt programmeringsspråk. Det er greit å være overveldet når du lærer å kode. Du vil sikkert glemme ting så fort du lærer dem. Disse tipsene kan hjelpe deg å bedre beholde all den nye informasjonen. Les mer, eller hva med et enkelt prosjekt som å lese og skrive til Google Sheets med Python Hvordan lese og skrive til Google Sheets med Python Hvordan lese og skrive til Google Ark med Python Python kan virke rart og uvanlig, men det er lett å lære og bruke. I denne artikkelen vil jeg vise deg hvordan du leser og skriver til Google Sheets ved hjelp av Python. Les mer ?
Python Forutsetninger og oppsett
Før du begynner, kan du ønske å få Python utviklingsmiljøoppsett. Vi bruker Python 3.6.5, og mens du kan bruke eldre versjoner, har du mindre problemer med å følge med hvis du bruker en ganske ny versjon.
Du vil opprette et virtuelt miljø Lær hvordan du bruker Python Virtual Environment Lær hvordan du bruker Python Virtual Environment Uansett om du er en erfaren Python-utvikler, eller hvis du nettopp har begynt, er det viktig å lære å sette opp et virtuelt miljø. ethvert Python-prosjekt. Les mer hvis du ikke allerede har en, og installer PIP for Python. Slik installerer du PIP for Python på Windows, Mac og Linux. Slik installerer du PIP for Python på Windows, Mac og Linux. Mange Python-utviklere stole på et verktøy som heter PIP for Python å gjøre alt mye enklere og raskere. Slik installerer du PIP. Les mer hvis det ikke er installert (det kommer med de fleste moderne installasjoner av Python skjønt). Når du har fått disse oppsettene, vil du være god til å gå. La oss komme i gang!
Grunnleggende om Python: Klasser
EN klasse er den grunnleggende byggestenen til OOP. En klasse er som en plan eller en blåkopi. De definerer egenskapene til et objekt Hva er objektorientert programmering? Grunnleggende forklart i Laymans vilkår Hva er objektorientert programmering? Grunnleggende omtalt i Laymans vilkår De fleste moderne programmeringsspråk støtter OOP-paradigmet (Object Oriented Programming). Men hva er OOP og hvorfor er det så nyttig? Les mer . Hvis du har en bilklasse, kan det for eksempel angis at det er fire hjul, minst ett sete og en motor.
Slik gjør du en klasse i Python:
klasse Kjøretøy: "" "Denne klassen definerer kjøretøy." "" pass
Enkel rett? Det er noen ting som foregår her. Legg merke til kommentaren øverst i klassen. Dette er en spesiell kommentar kalt a docstring. Det bør forklare litt om koden din. Ved å bruke trippel sitater (“””), du forteller Python at dette er en docstring.
De passere søkeord forteller Python å gjøre ingenting. Det er et spesielt ord, og du kan tenke på det som en todo. Det vil gjøre koden din kjørt, men det gjør egentlig ikke noe.
Hvis du kjører denne koden, ser du at ingenting skjer. Du trenger å instantiate din klasse. Dette betyr effektivt å gå og bygge et objekt basert på planen definert i klassen. Du kan lage så mange kopier som du vil, hver med forskjellige egenskaper. Slik gjør du det:
red_car = kjøretøy ()
Hvis du kjører dette igjen, vil du se at ingenting skjer. Koden fungerer som den skal, men du har ikke fortalt det å gjøre noe merkbart. De Kjøretøy Klassen definerer tegninger for et kjøretøy, og denne siste linjen oppretter et kjøretøyobjekt, og gir det et navn på rød bil.
Det er mulig å lage så mange objekter som du vil:
red_car = Kjøretøy () green_car = Kjøretøy () blue_car = Kjøretøy ()
La oss legge til litt mer kode. Legg til en metode som kalles __i det__ til Kjøretøy klasse:
Klasse Kjøretøy: "" "Denne klassen definerer kjøretøyer." "" def __init __ (selv, farge = "vanlig"): "" "Oppsett noen tilpassede bilegenskaper" "" utskrift ('Ny bil laget!') self.color = farge red_car = Kjøretøy () green_car = Kjøretøy () blue_car = Kjøretøy ()
Vær særlig oppmerksom på dette __i det__ metode. Den må begynne og slutte med to understreker. Dette er en spesiell metode i Python. Den blir automatisk kalt når du oppretter en ny gjenstand. Kjører denne koden vil vise ordene “Ny bil laget!” tre ganger.
Endelig, __i det__ tar et egendefinert argument kalt farge. De samme tegn og streng umiddelbart etter å fortelle Python å sette fargen til “vanlig” hvis ikke spesifisert. Du kan endre forekomstene dine til å sette opp bilfargen din ved opprettelsen:
red_car = Kjøretøy (farge = 'rød') green_car = Kjøretøy (farge = 'grønn') blue_car = Kjøretøy (farge = 'blå')
Hvis du skriver ut bilfargen, ser du at hver forekomst har en annen farge, selv om alle tre ble laget til samme spesifikasjon (klassen). Python gir deg tilgang til nesten hvilken som helst variabel eller objekt - ikke mange andre språk lar deg gjøre dette:
print (red_car.color) print (green_car.color) print (blue_car.color)
Dette fungerer fordi du har tildelt farge til self.color. Selv er et annet spesielt søkeord i Python, og det refererer til hvert bestemt eksempel på en klasse. Når du bruker selv, kan du angi eller få tilgang til data som er unike for den forekomsten. Den røde bilen har en farge på rødt, for eksempel.
Endre din __i det__ metode for å lagre bilstøyen i en variabel:
self.noise = 'Vroooom'
For å skrive ut bilstøyen, kan du bare få tilgang til bråk variabel, som du gjorde med farge, men dette er ikke den beste ideen. Hva om, når du kjører en bil, vil du ha en annen kode å kjøre på samme tid, kanskje kode som du ikke har skrevet ennå? Eller hva om du vil endre hvordan en bil kjører i fremtiden? Ved å opprette en funksjon (også kjent som en metode), kan du tett kontrollere hvordan tingene fungerer. Legg til dette under din __i det__ metode:
def drive (selv): print (self.noise)
Du kan ringe denne metoden ganske enkelt:
red_car.drive ()
Når du ringer til kjøre Metode, Python vil skrive ut lyden. Du kan utvide dette til å utføre alle oppgaver, men la det være som for nå.
Bra gjort! Nå skal du ha et godt grep om det grunnleggende. Du bør kunne lage og bruke dine egne klasser, hver med sine egne unike evner og funksjoner.
Hva om private variabler i python?
Private objekter er svært vanlige på de fleste andre språk. De er bare variabler eller funksjoner som ikke kan nås utenfor klassen. De kan være kode som krever spesielle forhold som skal oppfylles før bruk, eller bare utformet for intern bruk. Uansett årsak, kan forekomster ikke få tilgang til private medlemmer ... med mindre du koder i Python.
Python har ikke private medlemmer. I stedet stoler Python på et ære system: “Vi samtykker alle voksne.” Python programmerere forstår at du kanskje vil tinker med de følsomme internaler i en klasse, og det er greit, så ingenting burde vært virkelig utilgjengelig.
Python har imidlertid en akseptert konvensjon for å markere visse variabler som “privat” i betydningen “Denne variabelen er for intern bruk, og du trenger sannsynligvis ikke å røre den.” Konvensjonen er å prefikse variable navn med et understreke:
_some_secret_variable = 42
Dette fungerer som en advarsel til andre programmerere. Python vil ikke hindre deg i å få tilgang til dette, men understreket anbefaler deg at dette ikke ble utviklet for å bli brukt på denne måten, og du bør fortsette på egen risiko.
Det er noen ganger Python-måten å tinker med skjulte ting, men du risikerer at ting kanskje ikke fungerer riktig.
Forstå arv i python
Arv er en annen måte å redusere duplisering og gjenbrukskode på. Tenk på foreldre og barns forhold, arv gjør det mulig barn å dele felles kode med forelder. La oss implementere en elektrisk bil, som arver fra foreldrene.
Legg til denne koden under din Kjøretøy klasse:
Elektrisk kjøretøy klasse: "" Elektrisk kjøretøy klasse. "" "def charge (selv): print ('Zzz') electric_car = ElectricCar () electric_car.charge () electric_car.noise = 'Whoosh' electric_car.drive ()
Etter Elektrisk bil er definert, den Kjøretøy Klassen er spesifisert i to parenteser. Dette forteller Python det Elektrisk bil er et barn av Kjøretøy. Dette gir tilgang til alle data og metoder som er oppgitt i Kjøretøy.
Den elektriske bilen har sine egne spesielle metoder. Det kan lade opp (noe som andre kjøretøy ikke kan gjøre). Ved å bytte bilstøy, og deretter kjøre, kan du se at den elektriske bilen gjør en annen lyd, og du måtte ikke definere stasjonsmetoden. Dette skyldes at stasjonen er arvet fra foreldrene.
Utvid din Python Knowledge enda lenger
Disse eksemplene har vist hvor lett OOP kan være i Python. Vi har bare dekket de aller grunnleggende, men når du har dem ned, er resten lett.
Hvis du ønsker å fortsette å lære Python, eller kanskje sette disse OOP-ferdighetene i praksis, hvorfor ikke ta en titt på arrays og lister i Python, eller hva med å få Python og JavaScript til å kommunisere?
Hvis alt dette har forlatt deg som ønsker mer, så ikke glem å sjekke ut disse beste nettstedene for å lære Python De 5 beste nettstedene å lære Python programmering De 5 beste nettstedene å lære Python programmering Ønsker du å lære Python programmering? Her er de beste måtene å lære Python på nettet, hvorav mange er helt gratis. Les mer .
Utforsk mer om: Objektorientert programmering, programmering, Python.