Vodnik za začetnike po Python objektno usmerjenem programiranju

Vodnik za začetnike po Python objektno usmerjenem programiranju

Python se uporablja v vsem, od Raspberry Pi do strojnega učenja. Če pa želite delati na katerem koli velikem projektu, boste morali vedeti, kako Python deluje s objektno usmerjenim programiranjem (OOP). Ta članek bo obravnaval osnove, ki jih morate poznati.





Če se pravzaprav ne ukvarjate s programiranjem, zakaj si raje ne bi ogledali teh najboljših skic Monty Pythona? Navsezadnje so navdihnili jezik!





Počakaj, Python ni pravi jezik?

Naj pojasnimo eno stvar: Python JE pravi programski jezik, priljubljen je in hitro narašča. Samo zato, ker se bere kot psevdokoda in lahko kodirajte Minecraft na Pi z njim , to ne pomeni, da bi ga morali opustiti kot manjši jezik.





OOP je temelj sodobnega razvoja programske opreme in Python je več kot sposoben slediti. Lahko naredi eno ali dve stvari drugače kot drugi običajni jeziki, vendar naj vas to ne odvrne.

Ta vadnica bo vključevala osnovno znanje o Pythonu, vendar bomo ob tem zajeli vse zapletene stvari. Če ste novi v Pythonu, zakaj ne bi pogledali teh trikov za učenje novega programskega jezika ali kaj s preprostim projektom, kot je branje in pisanje v Google Preglednice s Pythonom?



Predpogoji in nastavitev za Python

Preden začnete, boste morda želeli namestiti razvojno okolje Python. Mi bomo uporabljali Python 3.6.5 , in čeprav lahko uporabljate starejše različice, boste imeli manj težav, če boste uporabljali dokaj novo različico.

Ustvariti morate navidezno okolje, če ga še nimate, in namestite PIP za Python če to ni nameščeno (prihaja z večino sodobnih namestitev Pythona). Ko boste imeli te nastavitve, boste lahko šli. Začnimo!





Osnove Pythona: razredi

TO razred je osnovni gradnik OOP. Razred je kot načrt ali načrt. Določajo značilnosti predmeta. Če imate na primer razred avtomobila, lahko navaja, da so štiri kolesa, vsaj en sedež in motor.

Tako naredite razred v Pythonu:





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

Preprosto kajne? Tukaj se dogaja nekaj stvari. Opazite komentar na vrhu razreda. To je poseben komentar, imenovan a docstring . Nekaj ​​bi moralo pojasniti vašo kodo. Z uporabo trojnih narekovajev ( '' ' ), Pythonu govorite, da je to niz znakov.

The prehod Ključna beseda Pythonu naredi nič. To je posebna beseda in nanjo si lahko misliš kot na nalogo. Tako bo vaša koda zagnana, v resnici pa ne naredi ničesar.

Če zaženete to kodo, boste videli, da se nič ne zgodi. Moraš instancirati ti razred. To dejansko pomeni graditi objekt na podlagi načrta, določenega v razredu. Ustvarite lahko poljubno število kopij, od katerih ima vsaka različne lastnosti. Evo, kako to storite:

red_car = Vehicle()

Če to znova zaženete, boste videli, da se nič ne zgodi. Koda deluje pravilno, vendar ji niste rekli, naj naredi kaj opaznega. The Vozilo razred definira načrte za vozilo, ta zadnja vrstica pa ustvari objekt vozila in mu da ime red_car .

Možno je narediti poljubno število predmetov:

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

Dodajmo še kodo. Dodajte metodo imenovano __v__ do Vozilo razred:

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()

Na to bodite še posebej pozorni __v__ metoda. Začeti in končati se mora z dvema podčrtajema. To je posebna metoda v Pythonu. Samodejno se pokliče, ko ustvarite nov predmet. Če zaženete to kodo, se prikažejo besede 'Nov avto izdelan!' trikrat.

Končno, __v__ sprejme argument po meri, imenovan barvo . Znak za enako in niz takoj za tem poveta Pythonu, da barvo nastavi na 'navadno', če ni podana. Primerke lahko spremenite tako, da barvo avtomobila nastavite ob ustvarjanju:

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

Če natisnete barvo avtomobila, boste videli, da ima vsak primerek drugačno barvo, čeprav so bili vsi trije izdelani po isti specifikaciji (razred). Python vam omogoča dostop do skoraj vseh spremenljivk ali predmetov-veliko drugih jezikov vam to ne omogoča:

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

To deluje, ker ste dodelili barvo do self.color . Self je še ena posebna ključna beseda v Pythonu in se nanaša na vsak poseben primerek razreda. Kadar koli uporabljate self, lahko nastavite ali dostopate do podatkov, edinstvenih za ta primerek. Rdeči avto ima na primer rdečo barvo.

Spremenite svojega __v__ način shranjevanja hrupa avtomobila v spremenljivko:

self.noise = 'Vroooom'

Če želite natisniti hrup avtomobila, lahko preprosto dostopate do hrup spremenljivo, kot ste to storili z barvo, vendar to ni najboljša ideja. Kaj pa, če želite, da med vožnjo avtomobila hkrati deluje druga koda, morda koda, ki je še niste napisali? Ali kaj, če želite v prihodnosti spremeniti način vožnje avtomobila? Z ustvarjanjem a funkcijo (znan tudi kot a metoda ), lahko strogo nadzirate, kako stvari delujejo. Dodajte to pod svojo __v__ metoda:

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

To metodo lahko preprosto pokličete:

red_car.drive()

Kadar koli pokličete voziti metoda, bo Python natisnil zvok. To lahko razširite, da izvedete vse naloge, vendar zaenkrat pustite, kot je.

Dobro opravljeno! Doslej bi se morali trdno držati osnov. Ustvariti in uporabljati morate svoje razrede, od katerih ima vsak svoje edinstvene sposobnosti in funkcije.

Kaj pa zasebne spremenljivke v Pythonu?

Zasebni predmeti so v večini drugih jezikov zelo pogosti. So preprosto spremenljivke ali funkcije, do katerih ni mogoče dostopati zunaj razreda. Lahko so koda, ki zahteva uporabo posebnih pogojev pred uporabo, ali pa so preprosto zasnovane samo za notranjo uporabo. Ne glede na razlog, primerki ne morejo dostopati do zasebnih članov ... razen če kodirate v Pythonu.

Python nima zasebnih članov. Namesto tega se Python opira na sistem časti: 'Vsi se strinjamo z odraslimi.' Programerji Pythona razumejo, da se boste morda želeli poigravati z občutljivimi notranjostmi razreda, in to je v redu, zato nič ne sme biti resnično nedostopno.

Vendar pa ima Python sprejeto konvencijo za označevanje nekaterih spremenljivk kot 'zasebnih' v smislu 'Ta spremenljivka je za notranjo uporabo in se je verjetno ni treba dotikati.' Dogovor je, da imajo imena spremenljivk pred črto podčrtaj:

_some_secret_variable = 42

To deluje kot opozorilo drugim programerjem. Python vam ne bo preprečil dostopa do tega, vendar vas podčrtano opozarja, da to ni bilo zasnovano za uporabo na ta način, zato morate nadaljevati na lastno odgovornost.

Včasih je Python način, kako se poigravati s skritimi stvarmi, vendar tvegate, da stvari morda ne bodo delovale pravilno.

Razumevanje dedovanja v Pythonu

Dedovanje je še en način za zmanjšanje podvajanja in ponovno uporabo kode. Če razmišljamo o odnosu staršev in otrok, dedovanje dopušča otrok da delite skupno kodo z starš . Izvedimo električni avtomobil, ki podeduje od staršev.

To kodo dodajte pod svojo Vozilo razred:

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

Po Električni avto je definirano, Vozilo razred je podan v dveh oklepajih. To Pythonu pove Električni avto je otrok Vozilo . To mu daje dostop do vseh podatkov in načinov, navedenih v Vozilo .

Električni avtomobil ima svoje posebne metode. Lahko se polni (nekaj, česar druga vozila ne zmorejo). Če spremenite hrup avtomobila in nato vožnjo, lahko vidite, da električni avto oddaja drugačen zvok, in vam ni bilo treba določiti načina vožnje. To je zato, ker je pogon podedovan od nadrejenega.

Še bolj razširite svoje znanje o Pythonu

Ti primeri so pokazali, kako enostaven je OOP v Pythonu. Ravnokar smo obravnavali samo osnove, a ko jih odkrijete, je ostalo enostavno.

kako zaobiti blokirano spletno stran

Če se želite še naprej učiti Pythona ali morda te veščine ООP uporabiti v praksi, zakaj ne bi pogledali matrike in sezname v Pythonu ali kako komunicirati Python in JavaScript?

Če ste zaradi vsega tega želeli več, potem ne pozabite preveriti teh najboljših spletnih mest, če želite izvedeti Python.

Deliti Deliti Cvrkutati E-naslov Izbrišite te datoteke in mape Windows, da sprostite prostor na disku

Ali morate v računalniku s sistemom Windows počistiti prostor na disku? Tu so datoteke in mape Windows, ki jih je mogoče varno izbrisati, da sprostite prostor na disku.

Preberite Naprej
Sorodne teme
  • Programiranje
  • Programiranje
  • Python
  • Objektno usmerjeno programiranje
O avtorju Joe Coburn(136 objavljenih člankov)

Joe je diplomiral iz računalništva na Univerzi v Lincolnu v Veliki Britaniji. Je poklicni razvijalec programske opreme in ko ne leti z brezpilotnimi letali ali ne piše glasbe, ga pogosto najdejo pri fotografiranju ali ustvarjanju videoposnetkov.

Več od Joea Coburna

Naročite se na naše novice

Pridružite se našemu glasilu za tehnične nasvete, ocene, brezplačne e -knjige in ekskluzivne ponudbe!

Kliknite tukaj, da se naročite