Objektine kalba klasė yra išplėstinis kodo fragmentas, kuris reiškia šabloną tos klasės objektams kurti ir naudoti. Klasės objektas tiesiog nurodo apibrėžtos klasės egzempliorių.
„Python“ klasės pagrindai
„Python“ programavimo kalboje kiekvienas duomenų elementas pateikiamas kaip kokios nors klasės egzempliorius. Jei nežinote kalbos, žiūrėkite mūsų pradedančiųjų „Python“ vadovas prieš eidamas toliau.
Klasė pateikia elgesio rinkinį kaip narių funkcijas (dar vadinamus metodais), kuris turi bendrų įgyvendinimo būdų visi tos klasės egzemplioriai, ir tai taip pat lemia būdą, kaip valstybės egzemplioriaus informacija pateikiama jos pavidalu atributus.
Skaityti daugiau: Klasės metodai „Python“: svarbūs skirtumai
Žemiau pateiktas kodas yra apibrėžtos „Python“ klasės pavyzdys. Kode apibrėžta klasė suteikia galimybę įgyvendinti „RaceCar“ klasę.
Kiekvienas klasės egzempliorius pateikia paprastą modelį įvairių markių automobiliams ir jame pateikiama tokia būsena informacija: automobilio pavadinimas, vairuotojo vardas, automobilio valstybinio numerio numeris, esamas greitis, greičio viršijimo mokestis ir spalva.
Ši automobilių klasė kiekviename automobilyje sumontuoja specialų jutiklį, už kurį automobilio vairuotojui skiriama 50 USD bauda, jei jis viršija leistiną 140 mylių per valandą greitį.
Klasės pavyzdys (automobilio klasė)
klasės automobilis:
# Konstruktorius
Metodas # init atsakingas už egzemplioriaus #variables reikšmių inicializavimą klasėje.
def __init __ (savęs, automobilio_pavadinimas, vairuotojo_pavadinimas, licencijos_pavadinimo numeris,
srovės greitis, greičio viršijimo mokestis, spalva):
self.car_name = automobilio_name
self._driver_name = vairuotojo vardas
self._license_plate_number = licencijos_plate_number
self._current_speed = current_speed
self._speeding_charge = greičio viršijimas
self._colour = spalva
#Accessor metodai
Metodas „get_car_name“ grąžina automobilio pavadinimą
def get_car_name (savarankiškai):
grąžinti self._car_name
Metodas „get_driver_name“ grąžina tvarkyklės pavadinimą
def get_driver_name (savarankiškai):
grąžinti self._driver_name
Metodas „get_license_plate“ grąžina automobilio valstybinį numerį
def get_license_plate (savarankiškai):
grąžinti self._license_plate
Metodas „get_current_speed“ pateikia dabartinį automobilio judėjimo greitį
def get_current_speed (savarankiškai):
grąžinti save._current_speed
Metodas „get_speeding_charge“ grąžina visą pinigų sumą, kurią
#driver turi mokėti už greičio viršijimą
def get_speeding_charge (savarankiškai):
grąžinti save
# Get_colour metodas grąžina mūsų saldaus važiavimo spalvą!
def get_colour (savęs):
grąžinti save._palva
# Mutatoriaus metodai
# Set_driver reikšmė keičia mūsų automobilio vairuotoją.
def set_driver (savarankiškai, new_driver):
self._driver_name = new_driver
„Speeding_ticket“ metodas užtikrina, kad vairuotojui bus sumokėta 50 dolerių, kai # jis ar ji pagavo greičio viršijimą virš 140 mylių per valandą :(
def greičio viršijimo bilietas (pats, dabartinis greitis):
jei srovės greitis <= 140:
grąžinti False
Kitas:
savęs. greitis + = 50
grįžti Tiesa
Metodas „make_payment“ užtikrina, kad vairuotojas galės sumokėti už visą # sumą, kurią turi mokėti už greičio viršijimą.
def make_payment (savarankiškai, suma_mokama):
self._speeding_charge - = suma_mokama
„Python“ klasės pavyzdžio paaiškinimas
„Savęs“ parametras
Pirmiausia atkreipkite dėmesį, kad yra skirtumas tarp klasėje deklaruoto metodo parašo ir metodo parašo, kurį programuotojas naudoja funkcijai iškviesti. Pavyzdžiui, get_colour klasėje apibrėžtas metodas apima vieną parametrą, kuris yra „savęs“ parametras.
Tačiau kai programuotojas kviečia šį metodą klasės egzemplioriui, jis nepateikia jokių parametrų. Tą patį reiškinį galima pastebėti greičio viršijimo bilieto metodu, kuris yra apibrėžtas atsižvelgiant į du klasės parametrus (t. Y. Save ir current_speed), tačiau programuotojas gali atlikti šį metodą pateikdamas tik „current_speed“ vertę parametras.
Taip yra todėl, kad pateikto „savęs“ parametro tikslas yra susieti metodą su objekto egzemplioriumi, kuriuo jis buvo iškviestas, ir tai nėra reikšmė, kurią turi pateikti programuotojas.
Konstruktorius
Klasės konstruktorius reiškia klasės metodą, kurį vartotojas gali iškviesti, kad sukurtų tos klasės objekto egzempliorių. Automobilių klasėje vartotojas gali sukurti objekto egzempliorių naudodamas šią sintaksę:
#sukurti savo pačių „Bugatti“ :)
Automobilis („Bugatti“, „David Sasu“, 90828, 0, 0, „Cherry Red“)
Vykdant šį kodą, automobilyje iškviečiamas metodas __init__. Šio metodo pareiga yra sugeneruoti naujai sukurtą kredito automobilio objektą su pateiktomis egzempliorių reikšmėmis. Kiekvienas automobilio klasės objektas susideda iš šešių egzempliorių kintamųjų, kurie yra:
- _auto_pavadinimas
- _ vairuotojo vardas
- _valstybinis numeris
- _Dabartinis greitis
- _speeding_charge
- _spalva
„Accessor“ metodai
Tai metodai, parašyti norint pasiekti objekto egzemplioriaus būsenos informaciją. Automobilių klasėje buvo parašyti šie prieigos būdai:
- get_car_name
- get_driver_name
- get_license_plate
- get_current_speed
- get_speeding_charge
- get_colour
Mutatorių metodai:
Tai yra metodai, parašyti objekto egzemplioriaus būsenos informacijai pakeisti. Automobilių klasėje buvo parašyti mutatorių metodai:
- set_driver
- greičio viršijimo bilietas
- sumokėti
Inkapsuliacijos samprata
„Kapsuliavimas“ yra terminas, vartojamas apibūdinti objektu pagrįsto projektavimo principą, kai programos komponentai neturėtų atskleisti jų atitinkamų įgyvendinimo vidinių detalių. Norėdami geriau suprasti kapsuliavimo sąvoką, žr straipsnis apie kapsuliavimą.
Tikrinant įvyko klaida
Mūsų automobilio klasės įgyvendinimas nėra patikimas, nes jis gali sugesti arba sugesti, atsižvelgiant į įvestį, kurią jis gauna iš programuotojo.
Pirmiausia atkreipkite dėmesį, kad mes netikriname greičio viršijimo bilieto ir „make_payment“ parametrų tipų tipų, taip pat netikriname nė vieno konstruktoriaus parametro tipo. Tai gali sukelti programos gedimą, jei vartotojas pateikia argumentą, kurio nebuvo galima tikėtis. Pvz., Jei vartotojas paskambina, pvz., „Speeding_ticket“ („chip ahoy“), programa sugenda, nes metodas, kurio tikėjosi, buvo sveikas skaičius, o ne eilutė.
Dabar jūs suprantate „Python“ klasės pagrindus
Šiame straipsnyje jums buvo pristatyta „Python“ klasės ir „Python“ klasės objekto sąvoka. Jūs taip pat susipažinote su idėjomis, kuriomis grindžiama „python“ klasė, pvz.: kapsuliavimas, „savęs“ identifikatorius, prieigos ir mutatoriaus metodai.
Turėdami šią informaciją turėtumėte sugebėti patys susikurti paprastą „Python“ klasę ir ją išbandyti :)
Dabar turėsite patvirtinti savo tapatybę per mobilųjį įrenginį, kad susietumėte paskyrą darbalaukyje ir žiniatinklio programoje.
- Programavimas
- „Python“
Prenumeruokite mūsų naujienlaiškį
Prisijunkite prie mūsų naujienlaiškio, kuriame rasite techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!
Dar vienas žingsnis…!
Prašome patvirtinti savo el. Pašto adresą el. Laiške, kurį jums ką tik išsiuntėme.