Iesācēja ceļvedis uz Python objektorientētu programmēšanu

Iesācēja ceļvedis uz Python objektorientētu programmēšanu

Python tiek izmantots visā, sākot no Raspberry Pi līdz mašīnmācībai. Tomēr, ja vēlaties strādāt pie jebkura liela projekta, jums jāzina, kā Python darbojas ar objektorientētu programmēšanu (OOP). Šis raksts aptvers pašus pamatus, kas jums jāzina.





Ja jūs patiešām neesat nodarbojies ar programmēšanu, kāpēc ne apskatīt šīs labākās Monty Python skices? Galu galā viņi iedvesmoja valodu!





Pagaidi, Python nav īstā valoda?

Skaidrosim vienu: Python IR īsta programmēšanas valoda, tā ir populāra un strauji pieaug. Tikai tāpēc, ka tas skan kā pseidokods, un jūs varat ar to kopā ar Pi kodējiet Minecraft , tas nenozīmē, ka jums to vajadzētu atlaist kā mazāku valodu.





OOP ir mūsdienu programmatūras izstrādes stūrakmens, un Python ir vairāk nekā spējīgs sekot līdzi. Tas var darīt vienu vai divas lietas savādāk nekā citas galvenās valodas, taču neļaujiet tam sevi nobiedēt.

Šajā apmācībā tiks pieņemtas pamatzināšanas par Python, taču mēs apskatīsim visas sarežģītās lietas. Ja esat jauns Python lietotājs, kāpēc neizskatīt šos trikus, lai apgūtu jaunu programmēšanas valodu, vai kā būtu ar vienkāršu projektu, piemēram, lasīšanu un rakstīšanu Google izklājlapās, izmantojot Python?



Python priekšnoteikumi un iestatīšana

Pirms darba sākšanas, iespējams, vēlēsities iegūt Python izstrādes vides iestatījumus. Mēs izmantosim Python 3.6.5 un, lai gan jūs varat izmantot vecākas versijas, jums būs mazāk problēmu, ja izmantosit diezgan jaunu versiju.

Jūs vēlaties izveidot virtuālu vidi, ja jums tāda vēl nav, un instalējiet PIP Python ja tas nav instalēts (lai gan tas ir aprīkots ar lielāko daļu mūsdienu Python instalāciju). Kad esat tos iestatījis, jums būs labi doties. Sāksim!





Python pamati: klases

TO klase ir OOP pamatelements. Klase ir kā plāns vai plāns. Tie nosaka objekta īpašības. Piemēram, ja jums ir automašīnu klase, tajā var norādīt, ka ir četri riteņi, vismaz viens sēdeklis un dzinējs.

Lūk, kā izveidot nodarbību programmā Python:





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

Vienkārši vai ne? Šeit notiek dažas lietas. Ievērojiet komentāru klases augšdaļā. Šis ir īpašs komentārs ar nosaukumu a docstring . Tam vajadzētu nedaudz izskaidrot jūsu kodu. Izmantojot trīskāršās pēdiņas ( '' ' ), jūs sakāt Python, ka šī ir dokstringa.

The iziet atslēgvārds liek Python nedarīt neko. Tas ir īpašs vārds, un jūs to varat iedomāties kā uzdevumu. Tas liks jūsu kodam darboties, taču tas faktiski neko nedara.

Palaižot šo kodu, jūs redzēsit, ka nekas nenotiek. Tev vajag momentāni tu klase. Tas faktiski nozīmē iet un būvēt objektu, pamatojoties uz klasē noteikto plānu. Jūs varat izveidot tik daudz kopiju, cik vēlaties, katrai no tām ir dažādas īpašības. Lūk, kā to izdarīt:

red_car = Vehicle()

Atkārtoti palaižot, jūs redzēsit, ka nekas nenotiek. Kods darbojas pareizi, taču jūs neesat teicis, lai tas dara kaut ko pamanāmu. The Transportlīdzeklis klase definē transportlīdzekļa rasējumus, un šī pēdējā rindiņa izveido transportlīdzekļa objektu un piešķir tam nosaukumu red_car .

Ir iespējams izgatavot tik daudz objektu, cik vēlaties:

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

Pievienosim vēl kādu kodu. Pievienojiet metodi ar nosaukumu __tajā__ uz Transportlīdzeklis klase:

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

Pievērsiet tam īpašu uzmanību __tajā__ metode. Tam jāsākas un jābeidzas ar diviem pasvītrojumiem. Šī ir īpaša metode Python. Izveidojot jaunu objektu, tas tiek automātiski izsaukts. Izpildot šo kodu, tiks parādīts uzraksts 'Jauna automašīna izgatavota!' trīs reizes.

Visbeidzot, __tajā__ ņem pielāgotu argumentu ar nosaukumu krāsa . Vienādības zīme un virkne tūlīt pēc tās liek Python iestatīt krāsu uz “vienkārša”, ja tā nav norādīta. Varat modificēt savus gadījumus, lai radīšanas laikā iestatītu automašīnas krāsu:

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

Ja drukājat automašīnas krāsu, redzēsit, ka katram gadījumam ir atšķirīga krāsa, lai gan visi trīs ir izgatavoti pēc vienas specifikācijas (klases). Python ļauj piekļūt gandrīz jebkuram mainīgajam vai objektam-ne daudzas citas valodas ļauj to izdarīt:

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

Tas darbojas, jo jūs piešķīrāt krāsa uz sevi.krāsu . Es ir vēl viens īpašs atslēgvārds programmā Python, un tas attiecas uz katru konkrētu klases gadījumu. Ikreiz, kad izmantojat sevi, varat iestatīt vai piekļūt šim gadījumam unikāliem datiem. Sarkanajai automašīnai, piemēram, ir sarkana krāsa.

Mainiet savu __tajā__ metode automašīnas trokšņa saglabāšanai mainīgā veidā:

self.noise = 'Vroooom'

Lai izdrukātu automašīnas troksni, varat vienkārši piekļūt troksnis mainīgs, kā jūs to darījāt ar krāsu, taču šī nav labākā ideja. Ko darīt, ja, braucot ar automašīnu, vēlaties, lai vienlaikus darbotos kāds cits kods, varbūt kods, kuru vēl neesat uzrakstījis? Vai ko darīt, ja nākotnē vēlaties mainīt automašīnas braukšanas veidu? Izveidojot a funkciju (pazīstams arī kā a metode ), jūs varat stingri kontrolēt, kā lietas darbojas. Pievienojiet to zem sava __tajā__ metode:

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

Šo metodi var izsaukt pavisam vienkārši:

red_car.drive()

Ikreiz, kad zvanāt uz braukt metodi, Python izdrukās skaņu. Jūs varat to paplašināt, lai veiktu visus uzdevumus, bet pagaidām atstājiet to tādu, kāds tas ir.

Labi padarīts! Līdz šim jums vajadzētu stingri satvert pamatus. Jums vajadzētu būt iespējai izveidot un izmantot savas nodarbības, kurām katrai ir savas unikālās spējas un funkcijas.

Kā ir ar privātajiem mainīgajiem Python?

Privāti objekti ir ļoti izplatīti lielākajā daļā citu valodu. Tie ir vienkārši mainīgie vai funkcijas, kurām nevar piekļūt ārpus klases. Tie var būt kodi, kuriem pirms lietošanas jāizpilda īpaši nosacījumi, vai vienkārši paredzēti tikai iekšējai lietošanai. Neatkarīgi no iemesla gadījumi nevar piekļūt privātiem dalībniekiem ... ja vien jūs kodējat Python.

Python nav privātu dalībnieku. Tā vietā Python paļaujas uz goda sistēmu: 'Mēs visi esam pieaugušie, kas piekrīt.' Python programmētāji saprot, ka jūs, iespējams, vēlēsities izklaidēties ar klases jutīgajiem iekšējiem elementiem, un tas ir labi, tāpēc nekas nekad nedrīkst būt patiesi nepieejams.

Tomēr Python ir pieņemta konvencija noteiktu mainīgo atzīmēšanai kā “privātiem” nozīmē “Šis mainīgais ir paredzēts iekšējai lietošanai, un jums, iespējams, tas nav jāpieskaras”. Vienošanās ir mainīgo nosaukumu prefikss ar pasvītrojumu:

_some_secret_variable = 42

Tas darbojas kā brīdinājums citiem programmētājiem. Python netraucēs jums piekļūt šai informācijai, taču pasvītrojums norāda, ka tas nav paredzēts lietošanai šādā veidā, un jums jāturpina uz savu risku.

Dažreiz tas ir Python veids, kā rūpēties par slēptām lietām, taču jūs riskējat, ka lietas var nedarboties pareizi.

Izpratne par mantojumu programmā Python

Mantojums ir vēl viens veids, kā samazināt pavairošanu un atkārtotu koda izmantošanu. Domājot par vecāku un bērnu attiecībām, mantojums ļauj bērns koplietot kopīgu kodu ar vecāks . Īstenosim elektromobili, kas manto no vecākiem.

Pievienojiet šo kodu zem sava Transportlīdzeklis klase:

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ēc tam, kad ElectricCar ir definēts, Transportlīdzeklis klase ir norādīta divās iekavās. Tas Python to pasaka ElectricCar ir bērns Transportlīdzeklis . Tas dod tai piekļuvi visiem datiem un metodēm, kas norādītas Transportlīdzeklis .

Elektromobilim ir savas īpašās metodes. Tas var uzlādēt (kaut ko citi transportlīdzekļi nevar darīt). Mainot automašīnas troksni un pēc tam braucot, jūs varat redzēt, ka elektromobilis rada atšķirīgu skaņu, un jums nebija jādefinē braukšanas metode. Tas ir tāpēc, ka disks tiek mantots no vecākiem.

Paplašiniet savas Python zināšanas vēl vairāk

Šie piemēri ir parādījuši, cik viegli OOP var būt Python. Mēs esam tikko aptvēruši tikai pašus pamatus, bet, kad esat tos nokārtojis, pārējais ir viegli.

kā apiet bloķētu vietni

Ja jūs vēlaties turpināt mācīties Python vai varbūt izmantot šīs OOP prasmes praksē, kāpēc ne apskatīt masīvi un saraksti Python vai kā būtu ar Python un JavaScript saziņu?

Ja tas viss ir radījis vēlmi vairāk, neaizmirstiet apskatīt šīs labākās vietnes, lai uzzinātu Python.

Kopīgot Kopīgot Čivināt E -pasts Dzēsiet šos Windows failus un mapes, lai atbrīvotu vietu diskā

Vai jums ir nepieciešams atbrīvot vietu diskā Windows datorā? Šeit ir Windows faili un mapes, ko var droši izdzēst, lai atbrīvotu vietu diskā.

Lasīt Tālāk
Saistītās tēmas
  • Programmēšana
  • Programmēšana
  • Python
  • Objektorientēta programmēšana
Par autoru Džo Koburns(Publicēti 136 raksti)

Džo ir absolvējis datorzinātnes Linkolnas universitātē, Lielbritānijā. Viņš ir profesionāls programmatūras izstrādātājs, un, kad viņš nelido ar droniem un neraksta mūziku, viņu bieži var atrast, fotografējot vai veidojot video.

Vairāk no Joe Coburn

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam, lai iegūtu tehniskus padomus, pārskatus, bezmaksas e -grāmatas un ekskluzīvus piedāvājumus!

Noklikšķiniet šeit, lai abonētu