V objektovo orientovanom jazyku je trieda rozšíriteľný kus kódu, ktorý predstavuje šablónu na vytváranie a používanie objektov tejto triedy. Objekt triedy jednoducho odkazuje na inštanciu definovanej triedy.

Základy triedy Python

V programovacom jazyku Python je každá časť údajov reprezentovaná ako inštancia nejakej triedy. Ak neovládate tento jazyk, prečítajte si naše Sprievodca pre Python pre začiatočníkov pred pokračovaním.

Trieda poskytuje množinu správania vo forme členských funkcií (tiež známych ako metódy), ktoré majú spoločné implementácie všetkých inštanciách tejto triedy a tiež určuje spôsob, akým sú štátne informácie pre jeho inštanciu reprezentované vo forme atribúty.

Čítaj viac: Metódy tried v Pythone: Dôležité rozdiely

Nasledujúci kód predstavuje príklad definovanej triedy v Pythone. Trieda definovaná v kóde poskytuje implementáciu triedy RaceCar.

Každá inštancia triedy poskytuje jednoduchý model pre rôzne značky automobilov a obsahuje nasledujúci stav informácie: názov automobilu, meno vodiča, ŠPZ vozidla, aktuálna rýchlosť, poplatok za prekročenie rýchlosti a farba.

instagram viewer

Táto automobilová trieda modeluje v každom automobile špeciálny snímač, ktorý zaznamená pokutu 50 dolárov proti vodičovi vozidla, ak prekročí zákonnú povolenú rýchlosť 140 míľ za hodinu.

Príklad triedy (trieda automobilu)


trieda Auto:
# Konštruktér
# metóda init je zodpovedná za inicializáciu hodnôt # premenných inštancie v triede.
def __init __ (self, car_name, driver_name, license_plate_number,
current_speed, speeding_charge, color):
self.car_name = car_name
self._driver_name = driver_name
self._license_plate_number = licenčné_číslo_čísla
self._current_speed = current_speed
self._speeding_charge = prekročenie rýchlosti
self._colour = farba
# Prístupové metódy
# Metóda get_car_name vráti názov automobilu
def get_car_name (self):
návrat self._car_name
# Metóda get_driver_name vráti meno ovládača
def get_driver_name (self):
návrat self._driver_name
# Metóda get_license_plate vráti ŠPZ automobilu
def get_license_plate (self):
návrat self._license_plate
# Metóda get_current_speed vráti aktuálnu rýchlosť, akou sa auto pohybuje
def get_current_speed (self):
návrat self._current_speed
# Metóda get_speeding_charge vracia celkovú sumu peňazí, ktorú
#driver musí platiť za prekročenie rýchlosti
def get_speeding_charge (self):
návrat self._speeding_charge
# Metóda get_colour vracia farbu našej sladkej jazdy!
def get_colour (self):
návrat self._colour
# Metódy mutátora
# Hodnota set_driver zmení vodiča nášho automobilu.
def set_driver (self, new_driver):
self._driver_name = new_driver
# Metóda speeding_ticket zaisťuje, že vodičovi bude účtovaných 50 dolárov, keď # chytí rýchlosť vyššiu ako 140 míľ za hodinu :(
def speeding_ticket (self, current_speed):
ak current_speed <= 140:
návrat False
inak:
self._speeding_charge + = 50
návrat Pravda
# Metóda make_payment zaisťuje, že vodič je schopný zaplatiť celú # sumu, ktorú dlhuje za poplatky za prekročenie rýchlosti.
def make_payment (self, amount_paid):
self._speeding_charge - = suma_platená

Vysvetlenie príkladu triedy Python

Parameter „Ja“

Najskôr si všimnite, že existuje rozdiel medzi podpisom metódy deklarovaným v triede a podpisom metódy, ktorý používa programátor na volanie funkcie. Napríklad get_colour metóda definovaná v triede vyžaduje jeden parameter, ktorým je parameter „self“.

Keď však programátor volá túto metódu na inštancii triedy, neposkytuje žiadne parametre. Rovnaký jav je možné pozorovať v metóde speeding_ticket, ktorá je definovaná tak, aby v triede brala dva parametre (t. J. Seba a current_speed), ale programátor je schopný vykonať túto metódu zadaním hodnoty iba pre „current_speed“ parameter.

Je to preto, lebo účelom poskytnutého parametra „self“ je naviazať metódu na inštanciu objektu, na ktorú bola volaná, a nejde o hodnotu, ktorú má dať programátor.

Konštruktér

Konštruktor triedy odkazuje na metódu triedy, ktorú môže užívateľ volať na vytvorenie inštancie objektu tejto triedy. V triede Auto môže používateľ vytvoriť inštanciu objektu pomocou nasledujúcej syntaxe:

#vytvorenie nášho vlastného Bugatti :)
Auto („Bugatti“, „David Sasu“, 90828, 0, 0, „Cherry Red“)

Výsledkom vykonania tohto kódu je volanie metódy __init__ v triede Car. Zodpovednosťou tejto metódy je vygenerovať novovytvorený objekt kreditného vozidla s poskytnutými hodnotami inštancie. Každý objekt triedy Car pozostáva zo šiestich inštančných premenných, ktoré sú:

  • _car_name
  • _driver_name
  • _poznávacia značka
  • _current_speed
  • _speeding_charge
  • _farba

Prístupové metódy

Jedná sa o metódy, ktoré sú napísané na prístup k stavovým informáciám inštancie objektu. V triede Car boli napísané metódy prístupu:

  • get_car_name
  • get_driver_name
  • get_license_plate
  • get_current_speed
  • get_speeding_charge
  • get_colour

Metódy mutátorov:

Jedná sa o metódy, ktoré sú písané s cieľom zmeniť informácie o stave inštancie objektu. V triede Car boli napísané metódy mutátora:

  • set_driver
  • pokuta za rýchlosť
  • vykonať platbu

Koncepcia zapuzdrenia

„Zapuzdrenie“ je termín, ktorý sa používa na opísanie princípu objektovo orientovaného dizajnu, pri ktorom by komponenty programu nemali odhaľovať vnútorné podrobnosti svojich príslušných implementácií. Ak chcete lepšie porozumieť pojmu zapuzdrenie, prečítajte si naše článok o zapuzdrení.

Kontrola chýb

Naša implementácia triedy Car nie je robustná, pretože je pravdepodobné, že zlyhá alebo zlyhá v závislosti od vstupu, ktorý dostane od programátora.

Najskôr si všimnite, že nekontrolujeme typy parametrov metód speeding_ticket a make_payment, ani nekontrolujeme typy žiadnych z parametrov konštruktora. To by mohlo viesť k zlyhaniu programu, ak používateľ uvedie argument, ktorý sa neočakával. Napríklad, ak používateľ zavolá, napríklad speeding_ticket („chipy ahoy“), program by zlyhal, pretože typ, ktorý metóda očakávala, bolo celé číslo a nie reťazec.

Teraz chápete základy triedy Python

V tomto článku ste sa oboznámili s konceptom triedy Python a objektu triedy Python. Tiež vám boli predstavené myšlienky, na ktorých je postavená trieda pythonu, ako napríklad: zapuzdrenie, identifikátor „seba“, prístupové metódy a mutačné metódy.

S týmito informáciami by ste mali byť schopní sami vytvoriť jednoduchú triedu Pythonu a otestovať ju :)

Email
WhatsApp vynucuje biometrické overovanie pre prístup na plochu a web

Teraz budete musieť overiť svoju totožnosť prostredníctvom mobilného zariadenia, aby ste mohli prepojiť svoj účet v počítači a webovej aplikácii.

Súvisiace témy
  • Programovanie
  • Python
O autorovi
David Sasu (1 publikovaných článkov)Viac od Davida Sasu

Prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu s technickými tipmi, recenziami, bezplatnými elektronickými knihami a exkluzívnymi ponukami!

Ešte jeden krok…!

V e-maile, ktorý sme vám práve poslali, potvrďte svoju e-mailovú adresu.

.