Objektorientētā valodā klase ir paplašināms koda gabals, kas apzīmē veidni šīs klases objektu izveidei un izmantošanai. Klases objekts vienkārši attiecas uz definētās klases gadījumu.
Python klases pamati
Python programmēšanas valodā katrs datu gabals tiek attēlots kā kādas klases eksemplārs. Ja jūs nezināt valodu, skatiet mūsu iesācēja ceļvedis Python pirms doties tālāk.
Klase nodrošina uzvedības kopumu dalībnieku funkciju veidā (pazīstamas arī kā metodes), kurām ir kopīgas ieviešanas visi šīs klases gadījumi, un tas arī nosaka veidu, kā valsts informācija par tās instanci tiek attēlota kā atribūti.
Lasīt vairāk: Klases metodes Python: svarīgās atšķirības
Tālāk redzamais kods ir definētas klases Python piemērs. Kodā noteiktā klase nodrošina RaceCar klases ieviešanu.
Katrs klases eksemplārs nodrošina vienkāršu modeli dažādu marku automašīnām, un tajā ir šāds stāvoklis informācija: automašīnas nosaukums, vadītāja vārds, automašīnas numura numurs, pašreizējais ātrums, ātruma pārsniegšana un krāsa.
Šī automašīnu klase katrā automašīnā modelē īpašu sensoru, kas reģistrē naudas sodu 50 ASV dolāru apmērā automašīnas vadītājam, ja viņš vai viņa pārsniedz atļauto ātruma ierobežojumu 140 jūdzes stundā.
Klases piemērs (automašīnas klase)
klases automašīna:
#Konstruktors
# init metode ir atbildīga par instances #variables vērtību inicializēšanu klasē.
def __init __ (sevis, automašīnas_nosaukums, vadītāja_nosaukums, licences_ numura numurs,
pašreizējais_ ātrums, ātruma pārsūtīšana, krāsa):
self.car_name = car_name
self._driver_name = draivera_nosaukums
self._license_plate_number = licences_plates_number
self._current_speed = pašreizējais_speed
self._speeding_charge = ātruma pārsūtīšana
self._colour = krāsa
#Accessor metodes
# Get_car_name metode atgriež automašīnas nosaukumu
def get_car_name (pats):
atgriezties self._car_name
Metode # get_driver_name atgriež draivera vārdu
def get_driver_name (pats):
atgriezties self._driver_name
# Metode get_license_plate atgriež automašīnas numura zīmi
def get_license_plate (pats):
atgriezties self._license_plate
Metode # get_current_speed atgriež pašreizējo ātrumu, kādā automašīna # pārvietojas
def get_current_speed (pats):
atgriezties self._current_speed
Metode get_speeding_charge atgriež kopējo naudas summu, kas tiek izmantota
#driver ir jāmaksā par ātruma pārsniegšanu
def get_speeding_charge (pats):
atgriezties self._speeding_charge
# Get_colour metode atgriež mūsu saldā brauciena krāsu!
def get_colour (pats):
atgriezties self._colour
#Mutatora metodes
# Set_driver vērtība maina mūsu automašīnas vadītāju.
def set_driver (self, new_driver):
self._driver_name = new_driver
# Speeding_ticket metode nodrošina, ka autovadītājam tiek iekasēta 50 dolāri, ja # viņš vai viņa noķēra ātruma pārsniegšanu virs 140 jūdzēm stundā :(
def speeding_ticket (self, current_speed):
ja strāvas ātrums <= 140:
atgriezties Nepatiesa
cits:
self._speeding_charge + = 50
atgriešanās True
Metode # make_payment nodrošina, ka autovadītājs ir spējīgs samaksāt par visu summu #, kas viņam vai viņai ir jāmaksā par biļešu ātruma pārsniegšanu.
def make_payment (pats, summa_maksāts):
self._speeding_charge - = summa_maksāta
Python klases piemēra skaidrojums
"Self" parametrs
Pirmkārt, ņemiet vērā, ka pastāv atšķirība starp klasē deklarēto metodes parakstu un metodes parakstu, kuru programmētājs izmanto, lai izsauktu funkciju. Piemēram, get_colour klasē definētā metode ņem vienu parametru, kas ir parametrs “pats”.
Tomēr, kad programmētājs izsauc šo metodi klases instancē, viņš nenorāda nekādus parametrus. Šo pašu parādību var novērot arī ātruma biļetes metodē, kas definēta, lai klasē ņemtu divus parametrus (t.i., sevi un current_speed), taču programmētājs var izpildīt šo metodi, sniedzot vērtību tikai ‘current_speed’ parametrs.
Tas ir tāpēc, ka norādītā “self” parametra mērķis ir saistīt metodi ar objekta instanci, uz kuru tā tika izsaukta, un tā nav vērtība, kas jānorāda programmētājam.
Konstruktors
Klases konstruktors attiecas uz klases metodi, kuru lietotājs var izsaukt, lai izveidotu šīs klases objekta gadījumu. Automašīnas klasē lietotājs var izveidot objekta gadījumu, izmantojot šādu sintaksi:
# izveidojam mūsu pašu Bugatti :)
Automašīna (“Bugatti”, “David Sasu”, 90828, 0, 0, “Cherry Red”)
Šī koda izpildes rezultātā tiek izsaukts uz metodi __init__ automašīnu klasē. Šīs metodes pienākums ir ģenerēt jaunizveidotu kredītkartes objektu ar norādītajām instances vērtībām. Katru automašīnas klases objektu veido seši mainīgie, kas ir:
- _auto_nosaukums
- _vadītāja_nosaukums
- _Numurzīme
- _strāvas_ātrums
- _ ātruma_lādēšana
- _krāsa
Piekļuves metodes
Šīs ir metodes, kas tiek rakstītas, lai piekļūtu objekta instances stāvokļa informācijai. Automašīnu klasē tika rakstītas šādas piekļuves metodes:
- get_car_name
- get_driver_name
- get_license_plate
- get_current_speed
- get_speeding_charge
- get_colour
Mutatora metodes:
Šīs ir metodes, kas rakstītas, lai mainītu objekta instances stāvokļa informāciju. Automašīnu klasē tika uzrakstītas šādas mutatora metodes:
- set_driver
- sods par ātruma pārsniegšanu
- samaksāt
Iekapsulēšanas jēdziens
‘Iekapsulēšana’ ir termins, ko lieto, lai aprakstītu objektorientētas projektēšanas principu, kur programmas komponentiem nevajadzētu atklāt to attiecīgo ieviešanu iekšējās detaļas. Lai uzlabotu izpratni par iekapsulēšanas jēdzienu, skatiet mūsu raksts par iekapsulēšanu.
Pārbaudot radās kļūda
Automašīnu klases ieviešana nav pārliecinoša, jo tā, visticamāk, avarēs vai nedarbosies atkarībā no tā, ko tā saņem no programmētāja.
Pirmkārt, ņemiet vērā, ka mēs nepārbaudām ātruma biļetes un metožu maksāšanas metožu parametru tipus, kā arī nepārbaudām neviena konstruktora parametra tipu. Tas var izraisīt programmas avāriju, ja lietotājs sniedz argumentu, kas nebija paredzēts. Piemēram, ja lietotājs zvana, piemēram, speeding_ticket (“chips ahoy”), programma avarētu, jo veids, ko gaidīja metode, bija vesels skaitlis, nevis virkne.
Tagad jūs saprotat Python klases pamatus
Šajā rakstā jūs esat iepazīstināts ar Python klases un Python klases objekta jēdzienu. Jūs esat iepazinies arī ar idejām, uz kurām balstās pitona klase, piemēram: iekapsulēšana, “self” identifikators, piekļuves metodes un mutatora metodes.
Izmantojot šo informāciju, jums vajadzētu būt iespējai patstāvīgi izveidot vienkāršu Python klasi un to pārbaudīt :)
Tagad jums būs jāpārbauda sava identitāte, izmantojot mobilo ierīci, lai saistītu savu kontu darbvirsmā un tīmekļa lietotnē.
- Programmēšana
- Python
Abonējiet mūsu biļetenu
Pievienojieties mūsu informatīvajam izdevumam par tehniskiem padomiem, atsauksmēm, bezmaksas e-grāmatām un ekskluzīviem piedāvājumiem!
Vēl viens solis !!!
Lūdzu, apstipriniet savu e-pasta adresi e-pastā, kuru tikko nosūtījām.