V objektno usmerjenem jeziku je razred razširljiv del kode, ki predstavlja predlogo za ustvarjanje in uporabo predmetov tega razreda. Predmet razreda se preprosto nanaša na primerek definiranega razreda.
Osnove razreda Python
V programskem jeziku Python je vsak del podatkov predstavljen kot primerek nekega razreda. Če jezika ne poznate, si oglejte našo začetniški vodnik po Pythonu preden gremo naprej.
Razred nudi nabor vedenj v obliki funkcij članov (znanih tudi kot metode), ki imajo skupne izvedbe vse primerke tega razreda in določa tudi način, kako so informacije o stanju za njegov primerek predstavljene v obliki lastnosti.
Preberi več: Razredne metode v Pythonu: Pomembne razlike
Spodnja koda predstavlja primer definiranega razreda v Pythonu. Razred, definiran v kodi, zagotavlja izvedbo razreda RaceCar.
Vsak primerek razreda ponuja preprost model za različne znamke avtomobilov in vsebuje naslednje stanje podatki: ime avtomobila, ime voznika, številka registrske tablice avtomobila, trenutna hitrost, polnjenje prekoračitve hitrosti in barva.
Ta razred avtomobilov v vsakem avtomobilu oblikuje poseben senzor, ki vozniku avtomobila prijavi globo 50 USD, če preseže zakonsko dovoljeno hitrost 140 milj na uro.
Primer razreda (razred avtomobila)
razred Avto:
#Constructor
# metoda init je odgovorna za inicializacijo vrednosti primerka #variables v razredu.
def __init __ (self, car_name, driver_name, number_plate_number,
trenutna_hitrost, prehitro_ polnjenje, barva):
self.car_name = ime_avto
self._driver_name = ime_gonilnika
self._license_plate_number = številka_plačilne_številke
self._current_speed = trenutna_hitrost
self._speeding_charge = prehitro_napolnjenje
self._colour = barva
#Accessor metode
# Metoda get_car_name vrne ime avtomobila
def get_car_name (self):
vrni self._car_name
# Metoda get_driver_name vrne ime gonilnika
def get_driver_name (self):
vrni self._driver_name
# Metoda get_license_plate vrne registrsko tablico avtomobila
def get_license_plate (self):
vrni self._licence_plate
# Metoda get_current_speed vrne trenutno hitrost, s katero se avto #moving
def get_current_speed (self):
vrni self._current_speed
# Metoda get_speeding_charge vrne vsoto denarja, ki jo
#driver mora plačati za prehitro vožnjo
def get_speeding_charge (samo):
vrni self._speeding_charge
# Metoda get_colour vrne barvo naše sladke vožnje!
def get_colour (self):
vrni self._colour
#Mutatorske metode
#Vrednost set_driver spremeni voznika našega avtomobila.
def set_driver (self, new_driver):
self._driver_name = new_driver
# Metoda prehitre vozovnice zagotavlja, da voznik zaračuna 50 dolarjev, ko # je ujel hitrost nad 140 milj na uro :(
def speeding_ticket (self, current_speed):
če je trenutna_hitrost <= 140:
vrnitev False
sicer:
self._speeding_charge + = 50
vrni True
# Način make_payment zagotavlja, da lahko voznik plača ves znesek #, ki ga dolguje za prehitre vozovnice.
def make_payment (self, znesek_plačan):
self._speeding_charge - = plačani znesek
Pojasnilo primera razreda Python
Parameter "Self"
Najprej upoštevajte, da obstaja razlika med podpisom metode, prijavljenim v razredu, in podpisom metode, ki ga programer uporablja za klic funkcije. Na primer get_colour metoda, kot je definirana v razredu, vzame en parameter, ki je parameter 'self'.
Ko pa programer pokliče to metodo na primerku razreda, ne poda nobenih parametrov. Isti pojav lahko opazimo pri metodi speeding_ticket, ki je opredeljena za dva parametra v razredu (tj. Self in current_speed), vendar lahko programer izvede to metodo tako, da navede vrednost samo za 'current_speed' parameter.
To je zato, ker je namen navedenega parametra "self" vezati metodo na primerek predmeta, na katerem je bila poklicana, in ni vrednost, ki bi jo dal programer.
Konstruktor
Konstruktor razreda se nanaša na metodo razreda, ki jo lahko uporabnik pokliče za izdelavo primerka predmeta tega razreda. V razredu Car lahko uporabnik ustvari primerek predmeta z uporabo naslednje sintakse:
# ustvarjanje našega lastnega Bugattija :)
Avto ("Bugatti", "David Sasu", 90828, 0, 0, "Cherry Red")
Izvedba te kode povzroči klic metode __init__ v razredu Car. Odgovornost te metode je ustvariti na novo ustvarjen objekt kreditnega vozila z navedenimi vrednostmi primerka. Vsak predmet razreda Car je sestavljen iz šestih spremenljivk, ki so:
- _car_name
- _driver_name
- _Registrska tablica
- _tokovna_hitrost
- _speed_charge
- _barva
Dostopne metode
To so metode, ki so napisane za dostop do informacij o stanju primerka predmeta. V razredu Car so bile napisane metode za dostop:
- get_car_name
- get_driver_name
- get_license_plate
- get_current_speed
- get_speeding_charge
- get_colour
Mutatorske metode:
To so metode, ki so napisane za spreminjanje informacij o stanju primerka predmeta. V razredu Car so mutatorske metode, ki so bile napisane, naslednje:
- set_driver
- kazen za prehitro vožnjo
- izvedi plačilo
Koncept inkapsulacije
„Enkapsulacija“ je izraz, ki se uporablja za opis principa objektno usmerjenega načrtovanja, pri katerem komponente programa ne smejo razkriti notranjih podrobnosti njihovih izvedb. Če želite bolje razumeti koncept inkapsulacije, glejte našo članek o inkapsulaciji.
Napaka pri preverjanju
Naša izvedba razreda Car ni zanesljiva, saj je verjetno, da se bo zrušila ali okvarila, odvisno od vhodnih podatkov, ki jih prejme od programerja.
Najprej upoštevajte, da ne preverjamo tipov parametrov speeding_ticket in načinov make_payment niti vrst katerega koli parametra konstruktorja. To bi lahko povzročilo zrušitev programa, če uporabnik navede argument, ki ni bil pričakovan. Na primer, če uporabnik pokliče, kot je speeding_ticket ("čipi ahoy"), se program zruši, ker je vrsta, ki jo je metoda pričakovala, bila celo število in ne niz.
Zdaj razumete osnove razreda Python
V tem članku ste se seznanili s konceptom razreda Python in predmeta razreda Python. Prav tako ste se seznanili z idejami, na katerih je zgrajen razred python, kot so: inkapsulacija, identifikator 'self', metode dostopa in mutatorske metode.
S temi informacijami bi lahko sami ustvarili preprost razred Python in ga preizkusili :)
Zdaj boste morali svojo identiteto preveriti prek mobilne naprave, da povežete svoj račun na namizju in v spletni aplikaciji.
- Programiranje
- Python
Naročite se na naše novice
Pridružite se našemu glasilu za tehnične nasvete, preglede, brezplačne e-knjige in ekskluzivne ponudbe!
Še en korak…!
Potrdite svoj e-poštni naslov v e-poštnem sporočilu, ki smo vam ga pravkar poslali.