Algaja juhend Pythoni objektorienteeritud programmeerimiseks

Algaja juhend Pythoni objektorienteeritud programmeerimiseks

Pythonit kasutatakse kõiges alates Raspberry Pi -st kuni masinõppeni. Kui soovite aga töötada mõne suure projektiga, peate teadma, kuidas Python töötab objektorienteeritud programmeerimisega (OOP). See artikkel hõlmab põhitõdesid, mida peate teadma.





Kui te ei tegele programmeerimisega, siis miks mitte vaadata neid parimaid Monty Pythoni visandeid? Lõppude lõpuks inspireerisid nad keelt!





Oota, Python pole päris keel?

Teeme ühe asja selgeks: Python ON tõeline programmeerimiskeel, see on populaarne ja kasvab kiiresti. Lihtsalt sellepärast, et see loeb nagu pseudokood ja saate koodiga Picraft koos sellega Minecraft , see ei tähenda, et peaksite seda vähemkeelena alla hindama.





OOP on kaasaegse tarkvaraarenduse nurgakivi ja Python on enam kui võimeline sammu pidama. See võib teha ühte või kahte asja teistest peavoolu keeltest erinevalt, kuid ärge laske sellel end heidutada.

See õpetus eeldab põhiteadmisi Pythoni kohta, kuid me käsitleme kõiki keerulisi asju. Kui te pole Pythoni jaoks uus, siis miks mitte vaadata neid programmeerimiskeele õppimise nippe või kuidas on lood mõne lihtsa projektiga, näiteks Pythoniga Google'i arvutustabelite lugemine ja kirjutamine?



Pythoni eeltingimused ja seadistamine

Enne alustamist võiksite oma Pythoni arenduskeskkonna seadistada. Me hakkame kasutama Python 3.6.5 , ja kuigi saate kasutada vanemaid versioone, on teil üsna vähe probleeme, kui kasutate üsna uut versiooni.

Soovite luua virtuaalse keskkonna, kui teil seda veel pole, ja installige Pythoni jaoks PIP kui seda pole installitud (see on siiski kaasas enamiku kaasaegsete Pythoni installidega). Kui need seadistused on tehtud, on teil hea minna. Alustame!





Pythoni põhitõed: klassid

TO klassi on OOP põhiline ehitusplokk. Tund on nagu plaan või plaan. Need määravad objekti omadused. Kui teil on näiteks autoklass, võib see märkida, et seal on neli ratast, vähemalt üks iste ja mootor.

Pythonis klassi tegemiseks toimige järgmiselt.





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

Lihtne eks? Siin toimub paar asja. Pange tähele kommentaari klassi ülaosas. See on eriline kommentaar nimega a dokstring . See peaks teie koodi kohta natuke selgitama. Kasutades kolmekordseid jutumärke ( '' ' ), ütlete Pythonile, et see on dokstring.

The üle andma märksõna käsib Pythonil mitte midagi teha. See on eriline sõna ja te võite seda mõelda nagu ülesannet. See paneb teie koodi tööle, kuid tegelikult ei tee see midagi.

Kui käivitate selle koodi, näete, et midagi ei juhtu. Sa pead esile tuua sa klass. See tähendab tegelikult klassis määratletud plaani alusel objekti minekut ja ehitamist. Saate luua nii palju koopiaid kui soovite, igaühel on erinevad omadused. Seda saate teha järgmiselt.

red_car = Vehicle()

Kui käivitate selle uuesti, näete, et midagi ei juhtu. Kood töötab õigesti, kuid te pole käskinud tal midagi märgatavat teha. The Sõiduk klass määratleb sõiduki joonised ja see viimane rida loob sõiduki objekti ja annab sellele nime punane auto .

Võimalik on teha nii palju objekte kui soovite:

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

Lisame veel koodi. Lisage meetod nimega __selles__ juurde Sõiduk klass:

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

Pöörake sellele erilist tähelepanu __selles__ meetod. See peab algama ja lõppema kahe alljoonega. See on Pythonis eriline meetod. Uue objekti loomisel helistatakse sellele automaatselt. Selle koodi käivitamisel kuvatakse sõnad „Uus auto tehtud!” kolm korda.

Lõpuks, __selles__ võtab kohandatud argumendi nimega värvi . Vahetult järgnev võrdusmärk ja string ütlevad Pythonile, et kui pole määratud, määrake värv „tavaline”. Saate oma eksemplare muuta, et seadistada oma auto värv loomise ajal.

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

Kui prindite auto värvi, näete, et igal eksemplaril on erinev värv, kuigi kõik kolm on valmistatud sama spetsifikatsiooni järgi (klass). Python võimaldab juurdepääsu peaaegu igale muutujale või objektile-mitte paljud teised keeled ei võimalda seda teha:

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

See toimib, kuna määrasite värvi et ise.värv . Ise on Pythonis veel üks eriline märksõna ja see viitab klassi igale konkreetsele eksemplarile. Alati, kui kasutate iseennast, saate sellele eksemplarile ainulaadseid andmeid määrata või neile juurde pääseda. Punane auto on näiteks punase värviga.

Muutke oma __selles__ meetod auto müra muutujaks salvestamiseks:

self.noise = 'Vroooom'

Automüra printimiseks pääsete lihtsalt juurde müra muutuv, nagu tegite värviga, kuid see pole parim mõte. Mis siis, kui soovite autoga sõites, et samal ajal töötaks mõni muu kood, võib -olla kood, mida te pole veel kirjutanud? Või mis siis, kui soovite tulevikus auto juhtimisviisi muuta? Luues a funktsiooni (tuntud ka kui a meetod ), saate täpselt kontrollida, kuidas asjad toimivad. Lisage see oma alla __selles__ meetod:

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

Seda meetodit saate nimetada üsna lihtsalt:

red_car.drive()

Iga kord, kui helistate sõita meetodil prindib Python heli. Saate seda laiendada kõigi ülesannete täitmiseks, kuid jätke see praeguseks.

Hästi tehtud! Nüüdseks peaksite põhitõdedest kindlalt aru saama. Teil peaks olema võimalus luua ja kasutada oma klasse, millest igaühel on oma ainulaadsed võimed ja funktsioonid.

Aga Pythoni privaatsed muutujad?

Eraobjektid on enamikus teistes keeltes väga levinud. Need on lihtsalt muutujad või funktsioonid, millele ei pääse juurde väljaspool klassi. Need võivad olla koodid, mis nõuavad enne kasutamist eritingimuste täitmist või on mõeldud ainult sisekasutuseks. Ükskõik, mis põhjusel, ei pääse eksemplarid eraliikmetele juurde ... kui te ei kodeeri Pythonis.

Pythonil ei ole eraliikmeid. Selle asemel tugineb Python ausüsteemile: 'Me kõik oleme nõus täiskasvanud.' Pythoni programmeerijad mõistavad, et võiksite mõne tundliku sisemise sisuga nokitseda, ja see on okei, nii et miski ei tohiks kunagi olla tõeliselt kättesaamatu.

Siiski on Pythonil heaks kiidetud tava teatud muutujate märkimiseks privaatseks tähenduses „See muutuja on mõeldud sisekasutuseks ja tõenäoliselt ei pea te seda puudutama”. Kokkulepe seisneb muutujate nimede allakriipsutamises:

_some_secret_variable = 42

See toimib hoiatusena teistele programmeerijatele. Python ei takista teil sellele juurde pääseda, kuid allajoon annab teile nõu, et see pole mõeldud selliseks kasutamiseks ja peaksite jätkama omal vastutusel.

See on mõnikord Pythoni viis peidetud asjadega nokitsemiseks, kuid riskite sellega, et asjad ei pruugi korralikult töötada.

Pärandi mõistmine Pythonis

Pärand on veel üks viis dubleerimise vähendamiseks ja koodi taaskasutamiseks. Mõeldes vanemate ja laste suhetele, võimaldab pärimine laps ühise koodi jagamiseks lapsevanem . Rakendame elektriauto, mis pärib vanemalt.

Lisage see kood oma alla Sõiduk klass:

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

Pärast Elektriauto on määratletud, Sõiduk klass on määratletud kahe sulgu sees. See ütleb Pythonile seda Elektriauto on lapse laps Sõiduk . See annab talle juurdepääsu kõikidele andmetele ja meetoditele Sõiduk .

Elektriautol on oma erimeetodid. See võib laadida (midagi, mida teised sõidukid ei saa teha). Automüra muutes ja seejärel sõites näete, et elektriauto teeb teistsugust heli ja te ei pidanud sõidumeetodit määratlema. Seda seetõttu, et draiv päritakse vanemalt.

Laiendage oma Pythoni teadmisi veelgi

Need näited on näidanud, kui lihtne võib OOP Pythonis olla. Oleme käsitlenud vaid põhitõdesid, kuid kui need on juba tehtud, on ülejäänud lihtne.

kuidas andmeid arvutist arvutisse üle kanda

Kui soovite jätkata Pythoni õppimist või rakendada neid OOP -oskusi praktikas, siis miks mitte vaadata massiivid ja loendid Pythonis või kuidas saada Python ja JavaScript suhtlema?

Kui see kõik on tekitanud soovi rohkem, siis ärge unustage vaadata neid parimaid veebisaite, et Pythoni õppida.

Jaga Jaga Piiksuma E -post Kustutage need Windowsi failid ja kaustad kettaruumi vabastamiseks

Kas vajate Windowsi arvutis kettaruumi tühjendamist? Siin on Windowsi failid ja kaustad, mida saab kettaruumi vabastamiseks turvaliselt kustutada.

Loe edasi
Seotud teemad
  • Programmeerimine
  • Programmeerimine
  • Python
  • Objektile orienteeritud programmeerimine
Autori kohta Joe Coburn(136 artiklit avaldatud)

Joe on lõpetanud arvutiteaduse Ühendkuningriigi Lincolni ülikoolis. Ta on professionaalne tarkvaraarendaja ja kui ta ei lennuta droonidega ega kirjuta muusikat, võib teda sageli leida pildistamas või videoid tootmas.

Rohkem Joe Coburnilt

Telli meie uudiskiri

Liituge meie uudiskirjaga, et saada tehnilisi näpunäiteid, ülevaateid, tasuta e -raamatuid ja eksklusiivseid pakkumisi!

Tellimiseks klõpsake siin