Isiqulatho[Fihla][Bonisa]
Kule ntetho, siya kufunda malunga neeklasi, abakhi kunye nelifa kwi-python.
Ezi ngqikelelo zibaluleke ngokwenene kwiprogram enkulu apho iintlobo ezahlukeneyo kufuneka zichazwe.
iiklasi
Iiklasi zibalulekile kucwangciso kwaye azikhankanyi kwipython. Ezinye ezininzi Iilwimi zenkqubo xhasa imbono yeeklasi. Sisebenzisa iiklasi ukuchaza iintlobo ezintsha zedatha.
Ukuza kuthi ga ngoku, sifunde malunga neentlobo zedatha ezisisiseko kwiPython njengamanani, imitya, kunye ne booleans. Ezi ziintlobo zedatha ezisisiseko okanye ezilula kwiPython. Siye sabona isibini seentlobo zedatha ezinzima ezifana noluhlu kunye nezichazi-magama.
Ngelixa ezi ntlobo ziluncedo kakhulu, azinakusoloko zisetyenziselwa ukulinganisa iikhonsepthi ezinzima. Ngokomzekelo, cinga ngengcamango yenqaku, okanye inqwelo yokuthenga. Inqwelo yokuthenga ayisiyonto ibubolile okanye uluhlu. Luhlobo olwahlukileyo lwedatha. Ngoko ke sinokusebenzisa iiklasi ukuchaza iindidi ezintsha ukulinganisa iikhonsepthi zokwenyani.
Ngoku, makhe sichaze uhlobo olutsha lwedatha olubizwa ngokuba yi-point. Olu didi lutsha luza kuba neendlela njengoko besijongile ngaphambili.
Nantsi indlela oya kuyenza ngayo:
Siqala ngokuchaza iklasi ngokusebenzisa igama elingundoqo elithi "iklasi" kwaye emva koko sinika iklasi yethu igama.
class Point
Ngoku, jonga indibano yamagama endikhe ndayisebenzisa apha. Ndiyibhale ngoonobumba abakhulu apha, yile nto siyibiza ngokuba yingqungquthela yamagama epascal. Le ngqungquthela yahlukile kuleyo siyisebenzisayo xa sibiza ii-variables zethu kunye nemisebenzi apho sihlala sisebenzisa oonobumba abancinci kwaye sahlula amagama amaninzi sisebenzisa i-underscore. Kodwa xa sibiza iiklasi, asisebenzisi i-underscore ukwahlula amagama amaninzi endaweni yoko, sibhala unobumba omkhulu wokuqala wegama ngalinye.
Emva kokuchaza iklasi yethu, kusetyenziswa ikholoni ethetha ukuba ngoku ibhloko ichazwa.
class Point:
def move (self):
Kule block, sinokuchaza yonke imisebenzi okanye iindlela ezizezamanqaku. Umzekelo, sinokuchaza umsebenzi othi "shukuma" ukuhambisa inqaku. Qaphela ukuba nje ukuba sichwetheza i-parenthesis evulekileyo, i-PyCharm yongeza ngokuzenzekelayo "ubuqu" apha. Eli ligama elingundoqo elikhethekileyo kwaye mandibuyele kweli kamsinyane. Masiprinte "shukuma" kwitheminali.
print("move")
Masichaze enye indlela efana “nokuzoba” kwaye siyiprinte kwitheminali.
def draw(self):
print("draw")
Sigqibile ngenkcazo yeklasi yethu "yenqaku". Ngolu hlobo olutsha, sinokwenza izinto ezintsha. Iklasi ichaza ngokulula iplani okanye ithempleyithi yokudala izinto eziyimizekelo yokwenyani esekelwe kulo mfanekiso. Ukudala into, sichwetheza igama leklasi yethu kwaye siyibize njengomsebenzi. Oku kudala into entsha kwaye emva koko iyibuyisele. Emva koko sinokugcina loo nto kuguquguquko. Makhe ndikubonise:
Apha sichaze i-“point1” eyi-three-dimensional point. Ungayibona loo nto, sinokuprinta ulungelelwaniso lomntu kwi-terminal.
Sinokusebenzisa iindlela ezimbini “zokuzoba” kunye “nokushukuma” ngale ngongoma.
Ke ukuphinda, sisebenzisa iiklasi ukuchaza iindidi ezintsha kwaye ezi ntlobo zinokuba neendlela esizichazayo kumzimba weklasi. Iiklasi zinokuba neempawu esinokuzimisela naphi na kwiinkqubo zethu.
Abaqulunqi
Ukuza kuthi ga ngoku, sifunde ukwenza iintlobo ezintsha usebenzisa iiklasi. Ngoku kukho ingxaki encinci ngolu kuphunyezwa. Singenza into yenqaku ngaphandle ko x okanye uy ukulungelelanisa usebenzisa iiklasi kwaye ayifanelekanga. Makhe ndikubonise.
Masidale inqaku kwaye siyiprinte phambi kokuba sisete u x lungelelanisa. Ukuqhuba inkqubo yethu kukhokelela kwimpazamo yophawu olufana nolu:
Kuthetha ukuba into ethile ayinaphawu lophawu x. Ngoku ingxaki kukuba kuyenzeka ukuba nenqaku lenjongo ngaphandle kuka x okanye uy abalungelelanisi. Oku akunangqiqo njengoko nanini na sithetha ngenqaku, kufuneka siyazi ukuba iphi na loo ngongoma. Ukusombulula le ngxaki, sisebenzisa umakhi. Umakhi ngumsebenzi obizwa ngexesha lokudala into.
Nantsi indlela esisebenzisa ngayo umakhi. Kuqala, masigqithise u x kunye no y balungelelanisa amaxabiso kudweliso lwenkqubo olungentla.
point = Point(10, 20)
print(point.x)
Ngoku, kufuneka songeze indlela ekhethekileyo kule klasi ebizwa ngokuba ngumakhi. Isivakalisi sayo sinje:
def __init__(self, x, y):
init
imfutshane kukuqaliswa, kwaye lo ngumsebenzi okanye indlela ebizwa xa into entsha yenqaku yenziwe. U-x kunye no-y bongezwa kanye emva koko self
ukongeza iiparamitha ezimbini ezongezelelweyo.
Emva koko, kufuneka senze imephu ux kunye noy kumaxabiso apasisiweyo, oko kukuthi, 10 kunye no-20
self.x = x
self.y = y
Sisebenzisa i- self
ukubhekisa kwinto yangoku kwaye ke sicwangcisa uphawu lwe x kwingxoxo ka x egqithiselwe kumsebenzi "x". Ngaloo ndlela, ukusebenzisa init
indlela, sinokuqalisa izinto zethu. Le ndlela ibizwa ngokuba ngumakhi. Masiqhube inkqubo yethu.
Ngoku, singatshintsha ux kunye no y balungelelanisa kamva. Masihlaziye x ulungelelwaniso:
point = Point(10, 20)
point.x = 11
print(point.x)
Ngoku, ulungelelwaniso lwe-x luhlaziywa kwixabiso le-11.
Lolonga
Nanku umthambo onika umdla kuwe.
Ndifuna uchaze uhlobo olutsha olubizwa ngokuba ngumntu. Ezi zinto "Mntu" kufuneka zibe "name
” uphawu kunye no “talk()
”Indlela.
Ngumsebenzi olula kwaye akufuneki uthabathe ngaphezulu kwemizuzu embalwa.
isisombululo
Qala ngokuchaza iklasi “uMntu” ngolu hlobo:
class Person:
self.name = name
Siza kuchaza umakhi kamva. Ngoku, sinokwenza into ethi "Umntu". Masiyibize ngokuba nguYohane
john = Person("John Smith")
print(john.name)
john.talk()
Ngoku, qhubeka uye kwinxalenye yokuqala yekhowudi kwaye wenze umakhi.
def __init__(self, name):
Ikhowudi yokugqibela iya kujongeka ngolu hlobo:
Ungasebenzisa kwakhona imitya efomathiweyo kunye nezinye iikhonsepthi ngokubambisana neeklasi kunye nabakhi.
Ilifa
Ilifa yenye ingqikelelo eyayanyaniswa neeklasi ezikuvumela ukuba uphinde usebenzise ikhowudi.
Cinga ngesi siqwenga sekhowudi.
class Dog:
def walk(self):
print("walk")
Senze iklasi "Inja" kunye nendlela "yokuhamba". Ngale ndlela, siprinta ngokulula umyalezo wokuhamba kwi-terminal. Masithi, kwinkqubo yokwenyani, Kukho imigca eli-10 yekhowudi endaweni yomgca omnye apha. Kwixesha elizayo, ukuba enye iklasi iyadingeka ukuba ibe nendlela "yokuhamba", kuya kufuneka siyiphinde yonke loo khowudi. Oku akulunganga.
Kwinkqubo, sinomgaqo othi DRY omfutshane ukuba ungaziphindi. Masithi kwixesha elizayo, sifumanisa ingxaki ngendlela yethu “yokuhamba” kwaye ukuba siye saphinda okanye saphinda le ndlela kwezinye iindawo ezininzi, kuya kufuneka sibuye siyilungise loo ngxaki kuyo yonke indawo esiyiphindaphindayo. ikhowudi. Yiyo loo nto kudweliso lwenkqubo akufuneki sichaze into kabini.
Kukho iindlela ezahlukeneyo zokulungisa le ngxaki kodwa apha siza kufunda enye elula kwabaqalayo kwaye ibizwa ngokuba lilifa. Kule meko, siya kudala enye iklasi "isilwanyana esincancisayo" kwaye sichaze uphawu lwethu "lokuhamba" kuloo klasi.
class Mammal:
def walk(self):
print("walk")
Emva kokuchaza iklasi yethu "yeMammal" sinokusebenzisa ilifa ukuze siphumelele iimpawu ezifana nezi:
Zombini iiklasi zeenja kunye neekati zizuza njengelifa zonke iindlela zeklasi ezichazwe kudidi lwabazali bazo. Ngoku, singongeza iindlela ezikhethekileyo kwizinja ngolu hlobo:
class Dog:
def bark(self):
print("bark")
Songa!
Oku kwakumalunga neeklasi, abakhi kunye nokusebenzisa kwakhona ikhowudi kwiiklasi ezineengqiqo zelifa. Ngoku sisondela esiphelweni soluhlu lwethu. Ngeli nqaku, kuya kufuneka ukwazi ukuvelisa iikhowudi ezilungileyo, ezifundekayo kunye nezimfutshane kwiPython.
Siza kubona umxholo weemodyuli kunye neepakethe kwintetho elandelayo.
Shiya iMpendulo