U objektno orijentiranom jeziku klasa je proširivi dio koda koji predstavlja predložak za stvaranje i upotrebu objekata te klase. Objekt klase jednostavno se odnosi na instancu definirane klase.

Osnove klase Python

U programskom jeziku Python svaki je podatak predstavljen kao primjerak neke klase. Ako niste upoznati s jezikom, pogledajte naš početnički vodič za Python prije nego što krene dalje.

Klasa pruža skup ponašanja u obliku funkcija člana (poznatih i kao metode), koje imaju implementacije koje su zajedničke sve instance te klase, a također određuje način na koji su informacije o stanju za njegovu instancu predstavljene u obliku atributi.

Čitaj više: Metode predavanja u Pythonu: važne razlike

Kôd u nastavku predstavlja primjer definirane klase u Pythonu. Klasa definirana u kodu omogućuje implementaciju klase RaceCar.

Svaka klasa nudi jednostavan model za različite marke automobila i sadrži sljedeće stanje podaci: naziv automobila, ime vozača, broj registarske pločice automobila, trenutna brzina, naplata za prebrzu vožnju i boja.

Ova klasa automobila modelira poseban senzor u svakom automobilu koji protiv vozača automobila prijavi kaznu od 50 dolara ako premaši zakonsku dozvoljenu brzinu od 140 milja na sat.

Primjer klase (klasa automobila)


razred automobila:
#Konstruktor
# metoda init odgovorna je za inicijalizaciju vrijednosti instance #variables u klasi.
def __init __ (self, ime_ automobila, ime_ vozača, broj_platnice_broj,
trenutna_brzina, brzina_napunjenja, boja):
self.car_name = ime_auto
self._driver_name = ime_ vozača
self._licence_plate_number = broj_datoteke_licence
self._current_speed = trenutna_brzina
self._speeding_charge = brzina_napunjenja
self._colour = boja
# Metode pristupnika
# Metoda get_car_name vraća ime automobila
def get_car_name (self):
vrati self._car_name
# Metoda get_driver_name vraća ime upravljačkog programa
def get_driver_name (self):
vrati self._driver_name
# Metoda get_license_plate vraća registarsku tablicu automobila
def get_license_plate (self):
vrati self._licence_plate
# Metoda get_current_speed vraća trenutnu brzinu kojom se automobil #moving
def get_current_speed (self):
vratiti self._current_speed
# Metoda get_speeding_charge vraća ukupan iznos novca koji
#driver mora platiti zbog prebrze vožnje
def get_speeding_charge (samo):
povratak self._speeding_charge
# Metoda get_colour vraća boju naše slatke vožnje!
def get_colour (self):
vratiti self._colour
# Metode mutatora
#Vrijednost set_driver mijenja vozača našeg automobila.
def set_driver (self, new_driver):
self._driver_name = novi_ vozač
#The speeding_ticket metoda osigurava da se vozaču naplati 50 dolara kada # je uhvatio brzinu iznad 140 milja na sat :(
def speeding_ticket (self, current_speed):
ako je trenutna_brzina <= 140:
povratak False
drugo:
self._ brzina_napunjenja + = 50
povratak True
# Način make_payment osigurava da vozač može platiti sav iznos #, koji duguje za naplatu prekoračenja brzine.
def make_payment (samostalno, iznos_plaćen):
self._speeding_charge - = iznos_plaćen

Objašnjenje primjera klase Python

Parametar "Self"

Prvo, imajte na umu da postoji razlika između potpisa metode deklarirane u klasi i potpisa metode koji programer koristi za pozivanje funkcije. Na primjer, get_colour metoda definirana u klasi uzima jedan parametar koji je parametar 'self'.

Međutim, kada programer poziva ovu metodu na instanci klase, on ne daje nikakve parametre. Isti se fenomen može primijetiti u metodi speeding_ticket koja je definirana da uzima dva parametra u klasi (tj. Self i current_speed), ali programer je u stanju izvršiti ovu metodu davanjem vrijednosti samo za 'current_speed' parametar.

To je zato što je svrha navedenog parametra "self" vezati metodu za instancu objekta na koju je pozvana i nije vrijednost koju programer mora dati.

Konstruktor

Konstruktor klase odnosi se na metodu klase koju korisnik može pozvati za stvaranje instance objekta te klase. U klasi Car, korisnik može stvoriti instancu objekta koristeći sljedeću sintaksu:

#creating naš vlastiti Bugatti :)
Automobil ("Bugatti", "David Sasu", 90828, 0, 0, "Cherry Red")

Izvršenje ovog koda rezultira pozivom metode __init__ u klasi Car. Odgovornost ove metode je generiranje novostvorenog objekta kreditnog automobila s navedenim vrijednostima instance. Svaki objekt klase Car sastoji se od šest varijabli koje su:

  • _car_name
  • _drver_name
  • _licence_plate
  • _Trenutna brzina
  • _brzina_naplata
  • _boja

Pristupne metode

To su metode koje su napisane za pristup informacijama o stanju instance objekta. U klasi Car, napisane metode pristupa su:

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

Mutatorske metode:

To su metode koje su napisane za promjenu podataka o stanju instance objekta. U klasi automobila, mutatorske metode koje su napisane su:

  • set_driver
  • kazna za brzu vožnju
  • izvršiti plaćanje

Koncept inkapsulacije

‘Enkapsulacija’ je pojam koji se koristi za opisivanje principa objektno orijentiranog dizajna pri čemu komponente programa ne bi trebale otkrivati ​​unutarnje detalje svojih implementacija. Da biste bolje razumjeli koncept enkapsulacije, pogledajte našu članak o inkapsulaciji.

Provjera pogreške

Naša implementacija klase Car nije robusna jer će se vjerojatno srušiti ili pokvariti, ovisno o ulazu koji dobije od programera.

Prvo, imajte na umu da ne provjeravamo vrste parametara speeding_ticket i make_payment metode, kao ni tipove bilo kojeg od parametara konstruktora. To bi moglo dovesti do pada programa ako korisnik navede argument koji se nije očekivao. Na primjer, ako korisnik uputi poziv kao što je speeding_ticket ("chips ahoy"), program će se srušiti jer je vrsta koju je metoda očekivala bila cijeli broj, a ne niz.

Sada razumijete osnove klase Python

U ovom članku upoznali ste se s konceptom klase Python i objekta klase Python. Također ste se upoznali s idejama na kojima je izgrađena klasa python kao što su: enkapsulacija, 'self' identifikator, metode pristupa i metode mutatora.

Uz ove informacije trebali biste sami moći stvoriti jednostavnu klasu Python i testirati je :)

E-mail
WhatsApp provodi biometrijsku provjeru autentičnosti za radnu površinu i web pristup

Sada ćete morati potvrditi svoj identitet putem mobilnog uređaja da biste povezali svoj račun na radnoj površini i web aplikaciji.

Povezane teme
  • Programiranje
  • Piton
O autoru
David Sasu (1 članak objavljen)Više od Davida Sasua

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e-knjige i ekskluzivne ponude!

Još jedan korak…!

Potvrdite svoju e-adresu u e-pošti koju smo vam upravo poslali.

.