Kalo te përmbajtja

alphaPlan · Strukturat e të dhënave, algoritmet dhe web-i · Fletë përmbledhëse 05

Programimi i orientuar nga objektet

Përshkruaji sendet e programit tënd si klasa, ndërto objekte prej tyre dhe lëri të ndajnë, të mbrojnë dhe të ndryshojnë sjelljen e tyre.

Idetë për t’u mbajtur mend

  1. 01Një klasë është një plan dhe një objekt është një send i ndërtuar sipas tij; çdo objekt mban të dhënat e veta, ndaj ndryshimi i njërit i lë të tjerët të qetë.
  2. 02Atributet janë të dhënat që mban një objekt dhe metodat janë veprimet që mund të bëjë; self do të thotë gjithmonë ky objekt i veçantë.
  3. 03Një atribut instance vendoset në __init__ dhe i takon një objekti; një atribut klase shkruhet në trupin e klasës dhe ndahet nga të gjithë.
  4. 04Një nënklasë e emërton klasën prind në kllapa dhe trashëgon atributet dhe metodat e saj; një metodë me të njëjtin emër te fëmija e mbishkruan atë të prindit.
  5. 05Polimorfizmi i lejon një cikli të vetëm të thërrasë të njëjtin emër metode mbi një grumbull të përzier objektesh dhe të lërë secilin të përgjigjet në mënyrën e vet.
  6. 06Kapsulimi i fsheh të dhënat pas metodave të rojtuara, dhe një klasë bazë abstrakte thotë çfarë duhet të japë çdo fëmijë pa thënë si.

Fjalët

def __init__(self, title, pages):
Ekzekutohet vetvetiu sa herë krijohet një objekt i ri dhe vendos të dhënat e tij fillestare.
self.balance
Balanca e kësaj llogarie, jo ndonjë numër i përbotshëm.
class Bus(Vehicle):
Bus trashëgon gjithçka që ka Vehicle dhe shton ose zëvendëson vetëm atë që ndryshon.
super().__init__(make, wheels)
Ekzekuton së pari __init__ të prindit, që fëmija ta ripërdorë vendosjen e tij në vend që ta kopjojë.
self.__balance
Dy nënvija në krye e bëjnë atributin privat, që kodi jashtë klasës të mos e arrijë dot nga rruga e dukshme.
@abstractmethod
Shënon një metodë pa trup që çdo fëmijë duhet ta japë; një klasë bazë e zhveshur e shënuar kështu nuk krijohet dot fare.

Bëj këtë

  • Lexoje self si objekti i posaçëm mbi të cilin po ekzekutohet kjo.
  • Kalo nëpër një metodë si deposit në vend që ta caktosh balancën me dorë, që rojtari brenda saj të refuzojë hyrje të gabuar.
  • Përdor trashëgiminë vetëm kur mund të thuash me ndershmëri se fëmija është një lloj prindi; një rrotë është pjesë e një makine, jo fëmijë.
  • Jepi çdo klase forme të njëjtin emër metode, area, që një cikël i vetëm t'i trajtojë të gjitha dhe një lloj i ri të futet pa e prekur ciklin.
  • Mos i përdor klasat me detyrim në një program prej pesë rreshtash; vlera e tyre shfaqet kur disa sende mbajnë secili gjendje dhe sjellje.

Kujdes

  • Një nënvijë e vetme si _balance është vetëm një shenjë e sjellshme; Python e zbaton vërtet privatësinë vetëm për dy nënvijat __balance.
  • Ndryshimi i një atributi klase si interest_rate e ndryshon për çdo objekt njëherësh, ndaj përdore vetëm për vlera që janë të njëjta për tërë llojin.
  • Të lexosh card.__balance nga jashtë nxjerr një AttributeError; ai dështim është kapsulimi që punon.

Gjete diçka të paqartë, të vjetruar ose që mund të përmirësohet? Sugjero një përmirësim