Python klasės ir objektai. 9 dalis Python kursas nuo pradedančiųjų iki pažengusiųjų per 11 tinklaraščio įrašų

Šis straipsnis padės skaitytojui suprasti pagrindines Python klases kartu su kai kuriomis pagrindinėmis taikymo sritimis realiame pasaulyje. Mes naudosime Visual Studio Code kaip mūsų kodo redaktorių. Jei dar nesate įdiegę Visual Studio Code, instrukcijos pateiktos pirmame tinklaraštyje.

Python klasės ir objektai – turinys:

  1. Python klasės
  2. Python klasės – apibrėžimas
  3. Python klasių inicializavimas
  4. Parašykime savo pirmąją Python klasę
  5. Atributai
  6. Klasės elgesys
  7. Objektai Python
  8. Paveldėjimas

Python klasės

Kaip aptarėme pirmame tinklaraštyje, Python yra objektų orientuota programavimo kalba. Yra trys frazės, kurios yra labai svarbios diskutuojant apie objektų orientuotą programavimą Python. Pirmasis yra klasė, antrasis – objektas, trečiasis – paveldėjimas. Pradėkime nuo to, kas yra klasė.

Python klasės – apibrėžimas

Klasė yra planas arba išplėstinė programa, kuri padeda kuriant objektus. Klasė susideda iš elgesio ir būsenos. Klasės elgesys demonstruojamas per funkcijas klasėje, kurios vadinamos metodais. Klasės būsena demonstruojama naudojant kintamuosius klasėje, kurie vadinami atributais.

Python klasių inicializavimas

Klasė gali būti inicializuota naudojant šią sintaksę.

Klasė Python apibrėžiama naudojant „class“ raktinį žodį, po kurio eina klasės pavadinimas. Pagrindinė Python funkcijos sintaksė iliustruota žemiau.

Pavyzdžiui:

<img src="https://firmbee.com/wp-content/uploads/Python_9-800x600.png" alt="Python_classes" width="800" height="600" class="alignnone size-medium wp-image-21409 img-fluid" />
# Sukurkite funkciją
# klasė Beždžionė
class classname:

Pastaba: klasės pavadinimas taip pat turi tuos pačius normatyvus kaip ir kintamojo deklaracija.

Parašykime savo pirmąją Python klasę

# pirmoji klasė

class Animals:
 pass

Viršuje pateiktame kodo bloke mes parašėme klasę, kurią toliau plėtosime tinklaraštyje. Kaip matote, mes naudojome „class“ raktinį žodį.

Dabar pažiūrėkime, kaip pridėti komponentus prie gyvūnų klasės. Bet prieš tai išmokime apie „__init__()“ konstruktorių. Konstruktoriai naudojami objektų instancijavimui. Čia __init__() naudojamas objektų instancijavimui. Konstruktorius gali būti numatytasis su tik self kaip argumentu arba parametrizuotas su reikiamais argumentais.

Atributai

Yra du skirtingi atributų tipai, pirmieji yra klasės kintamieji, o antrieji – instancijos kintamieji. Klasės kintamieji yra kintamieji, kurie priklauso klasei. Taip pat šie kintamieji yra prieinami visoms klasės instancijoms. Todėl jų vertė nepasikeis, net jei instancija pasikeis.

# klasės kintamieji

class Animals:
 type=”mammals”

Instancijos kintamieji yra kintamieji, kurie priklauso pačioms instancijoms. Todėl jie keis savo vertę, kai instancija keisis.

# klasės kintamieji

class Animals:
 def __init__(self,legs):
  self.legs=legs
  

Pastaba: Instancijos kintamieji nėra prieinami naudojant klasės pavadinimą, nes jie keičiasi priklausomai nuo objekto, kuris juos pasiekia.

Padarykime programą, kurioje yra tiek klasės, tiek instancijos kintamieji.

class Animals:
 type=”mammals”
 def __init__(self,name,legs):
  self.name=name
  self.legs=legs

Viršuje pateiktoje programoje mes naudojome tiek instancijos, tiek klasės kintamuosius. Taigi, šie kintamieji sudaro klasės atributus.

Klasės elgesys

Kaip aptarta, klasės elgesys apibrėžiamas metodais klasėje. Bet prieš pereinant prie elgesio aptarimo, turime pradėti diskutuoti apie „self“ parametrą, kurį naudojome __init__().

Self:

Labai paprastai tariant, kai mes ką nors pridedame prie self, tai reiškia, kad kintamasis ar funkcija priklauso tai klasei. Taip pat su „self“ galima pasiekti klasės atributus ar metodus.

Metodai:

Klasės metodai yra funkcijos klasėje, kurių pirmasis argumentas bus „self“. Metodas klasėje apibrėžiamas naudojant „def“ raktinį žodį.

class Animals:
 type=”mammals”
 def __init__(self,name,legs):
  self.name=name
  self.legs=legs
 def bark(self):
  if self.name==”dog”:
   print(“woof woof!!!”)
  else:
   print(“not a dog”)

Viršuje pateiktame metode „bark“, kadangi mes naudojame kintamąjį name, kuris yra instancijos kintamasis, mes jį pasiekiame naudodami „self“ ir ši funkcija atspausdins „woof woof!!!“, tik jei objekto pavadinimas yra šuo.

Mes aptarėme daugumą klasės komponentų, tačiau galbūt galvojate, kaip pamatyti, ar klasė veikia. Atsakymas yra tas, kad kol nesukursime klasės objekto, mes negalėsime pamatyti, ką klasė daro. Dabar apibrėžkime ir sukurkime klasės objektą.

Objektai Python

Objektas yra klasės instancija. Klasė yra tik planas, tačiau objektas yra klasės instancija, turinti tikras vertes.

Kodo, skirto objekto apibrėžimui arba sukūrimui, sintaksė iliustruota žemiau.

class Animals:
 type=”mammals”
 def __init__(self,name,legs):
  self.name=name
  self.legs=legs
 def bark(self):
  if self.name==”dog”:
   print(“woof woof!!!”)
  else:
   print(“not a dog”)

dog=Animals(“dog”,4)

Norint sukurti objektą, sintaksė yra objectname=classname(arguments). Taigi, čia mes suteikiame gyvūno pavadinimą – šuo, o kojų skaičių – 4. Dabar klasės objektas sukurtas, kitas žingsnis yra naudoti objektą, kad pasiektume jo atributus. Norint pasiekti klasės atributus naudojant objektą, reikia prisiminti, kad tik instancijos kintamieji gali būti pasiekiami naudojant objektą. Mūsų klasės instancijos kintamieji yra name ir legs.

class Animals:
 type=”mammals”
 def __init__(self,name,legs):
  self.name=name
  self.legs=legs
 def bark(self):
  if self.name==”dog”:
   print(“woof woof!!!”)
  else:
   print(“not a dog”)

dog=Animals(“dog”,4)
print(dog.name)
print(dog.legs)

Kaip matome, mes galime pasiekti instancijos kintamuosius naudodami taško notaciją.

Pažvelkime į išvestį.

#Išvestis

dog
4

Norint pasiekti funkcijas klasėje arba metodus, mes naudosime taško notaciją. Pavyzdys iliustruotas žemiau.

class Animals:
 type=”mammals”
 def __init__(self,name,legs):
  self.name=name
  self.legs=legs
 def bark(self):
  if self.name==”dog”:
   print(“woof woof!!!”)
  else:
   print(“not a dog”)

dog=Animals(“dog”,4)
print(dog.name)
print(dog.legs)
print(dog.bark())

#Išvestis

dog
4
woof woof!!!

Viršuje pateiktame pavyzdyje matome, kad mes pasiekiame klasės metodą „bark“ naudodami sukurtą šuns objektą. Matome, kad mes nenaudojame „self“ parametro funkcijos argumentuose. Tai yra todėl, kad mums nereikia naudoti „self“ už klasės ribų, nes pats objektas veikia kaip self.

Paveldėjimas

Paveldėjimas yra procesas, per kurį klasės atributai ir metodai gali būti perduodami vaikų klasei. Klasė, iš kurios vaiko klasė paveldi, yra tėvų klasė. Paveldėjimo sintaksė iliustruota žemiau.

#Paveldėjimas

class parent:

class child(parent):

Iš aukščiau pateiktos iliustracijos matome, kad paveldėjimo sintaksėje mes nurodome tėvų klasės pavadinimą kaip argumentą vaikų klasei. Naudokime Animals klasę ir sukursime vaikų klasę, pavadintą šuo. Tai iliustruota žemiau.

class Animals:
 type=”mammals”
 def __init__(self,name,legs):
  self.name=name
  self.legs=legs
 def bark(self):
  if self.name==”dog”:
   print(“woof woof!!!”)
  else:
   print(“not a dog”)

class Dog(Animals):
 def __init__(self,name,legs,breed):
  Animals.__init__(self,name,legs)
  self.breed=breed

Viršuje pateiktame pavyzdyje mes sukūrėme šuns klasę, kuri plečia anksčiau sukurtą gyvūnų klasę. Mes taip pat naudojame parametrus iš Animals, naudodami Animals.__init__(arguments), kurie turi name ir legs, kurie bus paveldėti šuns klasei. Tada mes sukuriame instancijos atributą šuns klasei, kuris yra breed.

Dabar sukurkime objektą šuns klasei ir pasiekime gyvūnų klasės atributus ir metodus.

class Animals:
 type=”mammals”
 def __init__(self,name,legs):
  self.name=name
  self.legs=legs
 def bark(self):
  if self.name==”dog”:
   print(“woof woof!!!”)
  else:
   print(“not a dog”)

class Dog(Animals):
 def __init__(self,name,legs,breed):
  Animals.__init__(self,name,legs)
  self.breed=breed

pug=Dog("dog",4,"pug")
pug.breed
pug.name
pug.legs
pug.bark()

#Išvestis

pug
dog
4
woof woof!!!

Kaip matome iš išvesties, tėvų klasės atributai ir metodai yra pasiekiami vaikų klasės objekte.

Šiame tinklaraštyje mes aptarėme keletą pagrindų apie klases Python. Kitame tinklaraščio įraše aptarsime failų tvarkymo temą.

Taip pat galite patikti mūsų JavaScript kursas nuo pradedančiųjų iki pažengusių.

Robert Whitney

JavaScript ekspertas ir instruktorius, kuris moko IT skyrius. Jo pagrindinis tikslas yra padidinti komandos produktyvumą, mokant kitus, kaip efektyviai bendradarbiauti programuojant.

View all posts →

Robert Whitney

JavaScript ekspertas ir instruktorius, kuris moko IT skyrius. Jo pagrindinis tikslas yra padidinti komandos produktyvumą, mokant kitus, kaip efektyviai bendradarbiauti programuojant.

Share
Published by
Robert Whitney

Recent Posts

Scrum vadovas | 28. Sprintas Scrum’e

Kelios mažesnės veiklos sudaro Sprintą Scrum. Sprintai, savo ruožtu, kartu sudaro kelią, skirtą produkto kūrimui…

1 hour ago

Kaip pritraukti daugiau klientų į savo verslą naudojant vaizdo rinkodarą?

Gavėjai vis dažniau renkasi vaizdo medžiagą. Rašytinės formos tampa vis mažiau populiarios. Tradiciniai tinklaraštininkai bando…

3 hours ago

Kaip rasti kopijavimo rašytoją?

Kopirajtingas pastaruoju metu tapo itin populiaria profesija. Vis daugiau reklamos tiek iš laisvai samdomų kopiraiterių,…

4 hours ago

Kodėl jums reikia laiko blokavimo programėlės? 2023 metų geriausios 8 programėlės

Ar kada nors jaučiate, kad diena per trumpa viskam, ką planavote, padaryti? Visi mes tai…

6 hours ago

Kas yra programinė įranga? Paskirstymo tipai ir metodai – Kurkite ir parduokite skaitmeninius produktus #34

Kas yra programinė įranga? Kokie yra jos tipai ir platinimo metodai? Kalbėdami apie skaitmeninius produktus,…

7 hours ago

Kaip parengti UX tyrimo ataskaitą? | UX tyrimas #34

Pateikti ir perduoti tyrimų rezultatus greičiausiai yra viena iš svarbiausių (ir reikalaujančių daug pastangų) UX…

9 hours ago