Š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.
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ė.
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.
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.
# 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.
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.
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__().
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.
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ą.
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 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ų.
JavaScript ekspertas ir instruktorius, kuris moko IT skyrius. Jo pagrindinis tikslas yra padidinti komandos produktyvumą, mokant kitus, kaip efektyviai bendradarbiauti programuojant.
Kelios mažesnės veiklos sudaro Sprintą Scrum. Sprintai, savo ruožtu, kartu sudaro kelią, skirtą produkto kūrimui…
Gavėjai vis dažniau renkasi vaizdo medžiagą. Rašytinės formos tampa vis mažiau populiarios. Tradiciniai tinklaraštininkai bando…
Kopirajtingas pastaruoju metu tapo itin populiaria profesija. Vis daugiau reklamos tiek iš laisvai samdomų kopiraiterių,…
Ar kada nors jaučiate, kad diena per trumpa viskam, ką planavote, padaryti? Visi mes tai…
Kas yra programinė įranga? Kokie yra jos tipai ir platinimo metodai? Kalbėdami apie skaitmeninius produktus,…
Pateikti ir perduoti tyrimų rezultatus greičiausiai yra viena iš svarbiausių (ir reikalaujančių daug pastangų) UX…