En nybegynnerguide til Python objektorientert programmering

En nybegynnerguide til Python objektorientert programmering

Python brukes i alt fra Raspberry Pi til maskinlæring. Hvis du vil jobbe med et stort prosjekt, må du imidlertid vite hvordan Python fungerer med objektorientert programmering (OOP). Denne artikkelen vil dekke det grunnleggende du trenger å vite.





Hvis du ikke egentlig liker programmering, hvorfor ikke ta en titt på disse beste Monty Python -skissene i stedet? De inspirerte tross alt språket!





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 vokser raskt. Bare fordi den leser som pseudokode, og du kan kode Minecraft på Pi med den , det betyr ikke at du bør rabattere det som et mindre språk.





OOP er hjørnesteinen i moderne programvareutvikling, og Python er mer enn i stand til å følge med. Det kan gjøre en eller to ting annerledes enn andre vanlige språk, men ikke la det skremme deg.

Denne opplæringen forutsetter grunnleggende kunnskap om Python, men vi dekker alle de komplekse tingene underveis. Hvis du ikke er ny på Python, hvorfor ikke se på disse triksene for å lære et nytt programmeringsspråk, eller hva med et enkelt prosjekt som å lese og skrive til Google Sheets med Python?



Python -forutsetninger og oppsett

Før du begynner, kan det være lurt å konfigurere Python -utviklingsmiljøet. Vi kommer til å bruke Python 3.6.5 , og mens du kan bruke eldre versjoner, har du færre problemer med å følge med hvis du bruker en ganske ny versjon.

Du vil opprette et virtuelt miljø hvis du ikke allerede har et, og installer PIP for Python hvis det ikke er installert (det kommer med de fleste moderne installasjoner av Python skjønt). Når du har fått oppsettet, er du i gang. La oss komme i gang!





Grunnleggende om Python: Klasser

TIL klasse er den grunnleggende byggesteinen i OOP. En klasse er som en plan eller en plan. De definerer egenskapene til et objekt. Hvis du for eksempel har en bilklasse, kan det stå at det er fire hjul, minst ett sete, og en motor.

Slik lager du en klasse i Python:





class Vehicle:
''' This class defines vehicles. '''
pass

Enkelt ikke sant? Det er noen ting som skjer her. Legg merke til kommentaren øverst i klassen. Dette er en spesiell kommentar kalt a docstring . Det burde forklare litt om koden din. Ved å bruke trippel anførselstegn ( '' ' ), forteller du Python at dette er en docstring.

De sende søkeordet forteller Python gjør ingenting. Det er et spesielt ord, og du kan tenke på det som en todo. Det vil få koden til å kjøre, men den gjør faktisk ingenting.

Hvis du kjører denne koden, ser du at ingenting skjer. Du trenger å øyeblikkelig du klasse. Dette betyr effektivt å gå og bygge et objekt basert på planen definert i klassen. Du kan lage så mange kopier du vil, hver med forskjellige egenskaper. Slik gjør du det:

red_car = Vehicle()

Hvis du kjører dette igjen, ser du at ingenting skjer. Koden fungerer som den skal, men du har ikke fortalt den å gjøre noe merkbart. De Kjøretøy klasse definerer tegninger for et kjøretøy, og denne siste linjen lager et kjøretøyobjekt, og gir det et navn på rød bil .

Det er mulig å lage så mange objekter du vil:

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

La oss legge til litt mer kode. Legg til en metode som heter __i det__ til Kjøretøy klasse:

class Vehicle:
''' This class defines vehicles. '''
def __init__(self, color='plain'):
''' Setup some custom car properties '''
print('New car made!')
self.color = color
red_car = Vehicle()
green_car = Vehicle()
blue_car = Vehicle()

Vær spesielt oppmerksom på dette __i det__ metode. Det må begynne og slutte med to understreker. Dette er en spesiell metode i Python. Den blir automatisk ringt opp når du oppretter et nytt objekt. Når du kjører denne koden, vises ordene 'Ny bil laget!' tre ganger.

Endelig, __i det__ tar et tilpasset argument kalt farge . Likestegnet og strengen umiddelbart etterpå forteller Python å sette fargen til 'ren' hvis den ikke er spesifisert. Du kan endre forekomsten din for å sette opp fargen på bilen ved opprettelsen:

red_car = Vehicle(color='red')
green_car = Vehicle(color='green')
blue_car = Vehicle(color='blue')

Hvis du skriver ut bilens farge, 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 tildelte farge til selvfarge . Self er et annet spesielt søkeord i Python, og det refererer til hver spesifikke forekomst av en klasse. Når du bruker deg selv, kan du angi eller få tilgang til data som er unike for den forekomsten. Den røde bilen har for eksempel en rød farge.

Endre din __i det__ metode for å lagre bilstøy 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 du, når du kjører bil, vil at en annen kode skal kjøres samtidig, kanskje kode som du ikke har skrevet ennå? Eller hva om du vil endre hvordan en bil kjører i fremtiden? Ved å lage en funksjon (også kjent som a metode ), kan du kontrollere hvordan ting fungerer. Legg til dette under din __i det__ metode:

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

Du kan ganske enkelt kalle denne metoden:

red_car.drive()

Når du ringer kjøre metode, vil Python skrive ut lyden. Du kan utvide dette til å utføre all herregård av oppgaver, men la det være som det er for nå.

Bra gjort! Nå bør 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 med private variabler i Python?

Private gjenstander er veldig vanlige på de fleste andre språk. De er ganske enkelt variabler eller funksjoner som ikke kan nås utenfor klassen. De kan være en kode som krever at spesielle vilkår er oppfylt før bruk, eller bare designet 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 er Python avhengig av et æressystem: 'Vi samtykker alle i voksne.' Python -programmerere forstår at det kan være lurt å tukle med de følsomme indre elementene i en klasse, og det er greit, så ingenting burde noen gang være virkelig utilgjengelig.

Imidlertid har Python en akseptert konvensjon for å markere visse variabler som 'private' i betydningen 'Denne variabelen er til intern bruk, og du trenger sannsynligvis ikke å berøre den.' Konvensjonen er å prefiks variabelnavn med en understreking:

_some_secret_variable = 42

Dette fungerer som en advarsel til andre programmerere. Python forhindrer deg ikke i å få tilgang til dette, men understreket gir deg beskjed om at dette ikke var designet for å bli brukt på denne måten, og du bør fortsette på egen risiko.

Noen ganger er det Python -måten å tinker med skjulte ting, men du risikerer at ting ikke fungerer som de skal.

Forståelse av arv i Python

Arv er en annen måte å redusere duplisering og gjenbruk av kode. Når jeg tenker på et forhold mellom foreldre og barn, tillater arv barn å dele felles kode med forelder . La oss implementere en elektrisk bil, som arver fra forelderen.

Legg til denne koden under din Kjøretøy klasse:

class ElectricCar(Vehicle):
''' Electric vehicle class. '''
def charge(self):
print('Zzz')
electric_car = ElectricCar()
electric_car.charge()
electric_car.noise = 'Whoosh'
electric_car.drive()

Etter Elektrisk bil er definert, Kjøretøy klasse er spesifisert i to parenteser. Dette forteller Python det Elektrisk bil er et barn av Kjøretøy . Dette gir den tilgang til alle dataene og metodene som er gitt i Kjøretøy .

Elbilen har sine egne spesielle metoder. Den kan lade (noe andre kjøretøyer ikke kan gjøre). Ved å endre bilstøyen, og deretter kjøre, kan du se at elbilen gir en annen lyd, og du slapp å definere kjøremetoden. Dette er fordi stasjonen er arvet fra overordnet.

Utvid din Python -kunnskap ytterligere

Disse eksemplene har vist hvor lett OOP kan være i Python. Vi har bare dekket det grunnleggende, men når du har fått dem ned, er resten enkelt.

hvordan finne ip -adressen på skriveren

Hvis du ønsker å fortsette å lære Python, eller kanskje sette disse OOP -ferdighetene ut i livet, hvorfor ikke ta en titt på matriser og lister i Python , eller hva med å få Python og JavaScript til å kommunisere?

Hvis alt dette har gjort at du vil ha mer, så ikke glem å sjekke ut disse beste nettstedene for å lære Python.

Dele Dele kvitring E -post Slett disse Windows -filene og mappene for å frigjøre diskplass

Trenger du å tømme diskplass på Windows -datamaskinen? Her er Windows -filer og mapper som trygt kan slettes for å frigjøre diskplass.

Les neste
Relaterte temaer
  • Programmering
  • Programmering
  • Python
  • Objektorientert programmering
Om forfatteren Joe Coburn(136 artikler publisert)

Joe er utdannet i informatikk fra University of Lincoln, Storbritannia. Han er en profesjonell programvareutvikler, og når han ikke flyr droner eller skriver musikk, kan han ofte bli funnet å ta bilder eller produsere videoer.

Mer fra Joe Coburn

Abonner på vårt nyhetsbrev

Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis ebøker og eksklusive tilbud!

Klikk her for å abonnere