Teburin Abubuwan Ciki[Boye][Nuna]
A cikin wannan lacca, za mu koyi game da azuzuwan, magina da kuma gado a Python.
Wadannan ra'ayoyin suna da mahimmanci a cikin babban shirin inda ake buƙatar nau'o'in nau'i daban-daban don bayyana.
Classes
Azuzuwa suna da mahimmanci a cikin shirye-shirye kuma ba su keɓance ga Python ba. Wasu da yawa yarukan shirye-shirye goyi bayan ra'ayi na azuzuwan. Muna amfani da azuzuwan don ayyana sabbin nau'ikan bayanai.
Ya zuwa yanzu, mun koyi game da ainihin nau'ikan bayanai a cikin Python kamar lambobi, kirtani, da booleans. Waɗannan su ne nau'ikan bayanai na asali ko masu sauƙi a cikin Python. Mun kuma ga wasu nau'ikan bayanai masu rikitarwa kamar lissafi da ƙamus.
Duk da yake waɗannan nau'ikan suna da fa'ida sosai, ba za a iya amfani da su koyaushe don yin ƙira mai rikitarwa ba. Alal misali, yi tunani game da ra'ayin batu, ko abin sayayya. Keken siyayya ba bulo ko jeri ba ne. Wani irin bayanai ne. Don haka za mu iya amfani da azuzuwan don ayyana sabbin nau'ikan don yin ƙima na ainihin ra'ayi.
Yanzu, bari mu ayyana sabon nau'in bayanai da ake kira batu. Wannan sabon nau'in zai sami hanyoyi kamar yadda muka bincika a baya.
Ga yadda za ku yi:
Za mu fara da ma'anar aji ta amfani da kalmar "class" kuma bayan haka muna ba wa ajinmu suna.
class Point
Yanzu, dubi taron suna da na yi amfani da shi a nan. Na yi babban harafi na farko a nan, abin da muke kira taron suna na pascal ke nan. Wannan al'ada ya bambanta da wanda muke amfani da shi don sanya sunayen masu canjin mu da ayyukanmu waɗanda a koyaushe muke amfani da ƙananan haruffa kuma muna raba kalmomi da yawa ta amfani da maƙasudi. Amma lokacin sanya suna azuzuwan, ba ma amfani da maƙasudi don raba kalmomi da yawa a maimakon haka, muna yin babban harafin farko na kowace kalma.
Bayan an ayyana ajin mu, ana amfani da hanji wanda ke nufin yanzu an bayyana block.
class Point:
def move (self):
A cikin wannan toshe, zamu iya ayyana duk ayyuka ko hanyoyin da ke cikin maki. Misali, zamu iya ayyana aikin da ake kira “motsawa” don matsar da aya. Lura cewa da zaran mun buga buɗe baka, PyCharm yana ƙara “kai” kai tsaye anan. Wannan kalma ce ta musamman kuma bari in dawo kan wannan jim kaɗan. Bari mu buga "motsi" a kan tasha.
print("move")
Bari mu ayyana wata hanya kamar “zana” kuma mu buga ta a tashar.
def draw(self):
print("draw")
Mun gama da ma'anar ajin mu "ma'ana". Tare da wannan sabon nau'in, zamu iya ƙirƙirar sabbin abubuwa. Aji kawai yana ayyana shuɗi ko samfuri don ƙirƙirar abubuwa waɗanda su ne ainihin al'amuran da suka dogara akan wannan tsarin. Don ƙirƙirar abu, muna buga sunan ajin mu sannan mu kira shi kamar aiki. Wannan yana haifar da sabon abu sannan ya mayar da shi. Sa'an nan za mu iya adana wannan abu a cikin m. Bari in nuna muku:
Anan mun ayyana “maki 1” wanda shine batu mai girma uku. Kuna iya ganin hakan, za mu iya buga haɗin kai ɗaya a kan tashar.
Za mu iya amfani da hanyoyi biyu "zana" da "matsa" tare da wannan batu.
Don haka don sake maimaitawa, muna amfani da azuzuwan don ayyana sabbin nau'ikan kuma waɗannan nau'ikan na iya samun hanyoyin da muka ayyana a jikin aji. Azuzuwa na iya samun halayen da za mu iya saita ko'ina a cikin shirye-shiryenmu.
Maƙeran gini
Ya zuwa yanzu, mun koyi yadda ake ƙirƙirar sabbin nau'ikan ta amfani da azuzuwan. Yanzu an sami karamar matsala a wannan aiwatarwa. Za mu iya ƙirƙirar abu mai ma'ana ba tare da haɗin gwiwar x ko y ta amfani da azuzuwan ba kuma hakan bai dace ba. Bari in nuna muku.
Bari mu ƙirƙiri batu mu buga shi kafin mu saita coordinate x. Gudanar da shirin namu yana haifar da kuskuren sifa kamar haka:
Yana nufin cewa abin da ake nufi ba shi da sifa da ake kira x. Yanzu matsalar ita ce yana yiwuwa a sami abu mai ma'ana ba tare da haɗin x ko y ba. Wannan ba shi da ma'ana domin a duk lokacin da muka yi magana game da wani batu, muna buƙatar sanin inda wannan batu yake. Don magance wannan matsala, muna amfani da maginin gini. Ginin wani aiki ne da ake kira a lokacin ƙirƙirar abu.
Ga yadda muke amfani da ginin gini. Da farko, bari mu wuce ƙimar daidaitawar x da y a cikin shirin da ke sama.
point = Point(10, 20)
print(point.x)
Yanzu, muna buƙatar ƙara wata hanya ta musamman a cikin wannan aji mai suna constructor. Maganarsa shine kamar haka:
def __init__(self, x, y):
init
gajere ne don farawa, kuma wannan shine aikin ko hanyar da ake kira lokacin da aka ƙirƙiri sabon abu. Ana ƙara x da y nan da nan self
don ƙara ƙarin sigogi biyu.
Bayan haka, ya kamata mu taswirar x da y zuwa ƙimar da aka wuce watau 10 da 20
self.x = x
self.y = y
Muna amfani da self
don komawa zuwa abu na yanzu sannan mu saita sifa x zuwa hujjar x da aka wuce zuwa aikin "x". Ta wannan hanyar, amfani init
hanya, za mu iya fara fara kayan mu. Ana kiran wannan hanyar a matsayin mai gini. Mu gudanar da shirin mu.
Yanzu, za mu iya canza haɗin gwiwar x da y daga baya. Mu sabunta x coordinate:
point = Point(10, 20)
point.x = 11
print(point.x)
Yanzu, an sabunta haɗin gwiwar x zuwa ƙimar 11.
Darasi
Anan akwai motsa jiki mai ban sha'awa a gare ku.
Ina so ku bayyana wani sabon nau'i mai suna mutum. Wadannan abubuwan "Mutum" yakamata su kasance da "name
"sifa da kuma"talk()
”Hanya.
Aiki ne mai sauƙi kuma bai kamata ya ɗauki fiye da mintuna biyu ba.
Magani
Fara da ayyana ajin “Mutum” kamar haka:
class Person:
self.name = name
Za mu ayyana maginin gini daga baya. Yanzu, za mu iya ƙirƙirar abu "Mutum". Bari mu kira shi John
john = Person("John Smith")
print(john.name)
john.talk()
Yanzu, ci gaba zuwa ɓangaren farko na lambar kuma ƙirƙirar mai gini.
def __init__(self, name):
Lambar ƙarshe za ta yi kama da haka:
Hakanan zaka iya amfani da tsararrun kirtani da sauran ra'ayoyi tare da azuzuwan da magina.
gādo
Gado wani ra'ayi ne mai alaƙa da azuzuwan da ke ba ku damar sake amfani da lamba.
Yi la'akari da wannan lambar.
class Dog:
def walk(self):
print("walk")
Mun ƙirƙiri ajin "Kare" tare da hanyar "tafiya". A cikin wannan hanyar, muna kawai buga saƙon tafiya a tashar tashar. Bari mu ce, a cikin ainihin shirin, Akwai layukan lamba 10 maimakon layi ɗaya kawai a nan. A nan gaba, idan ana buƙatar wani aji don samun hanyar "tafiya", dole ne mu maimaita duk wannan lambar. Wannan bai dace ba.
A cikin shirye-shiryen, muna da wata ka'ida mai suna DRY wacce ke takaice don kada ku maimaita kanku. Bari mu ce wani lokaci nan gaba, mun gano wata matsala ta hanyar “tafiya” kuma idan mun maimaita ko maimaita wannan hanyar a wasu wurare da yawa, za mu dawo mu gyara matsalar a duk inda muka kwafi wannan. code. Don haka shi ya sa a cikin programming ba za mu ayyana wani abu sau biyu ba.
Akwai hanyoyi daban-daban don magance wannan matsala amma a nan za mu koyi wanda ya fi sauƙi ga masu farawa kuma ana kiransa gado. A wannan yanayin, za mu ƙirƙiri wani nau'in "mammal" kuma mu ayyana sifa ta "tafiya" a cikin wannan ajin.
class Mammal:
def walk(self):
print("walk")
Bayan ayyana ajin mu na “Mammal” za mu iya amfani da gadon gado don wuce sifofin kamar haka:
Duka azuzuwan kare da cat suna gadon duk hanyoyin ajin da aka ayyana a ajin iyayensu. Yanzu, zamu iya ƙara hanyoyin musamman ga karnuka kamar haka:
class Dog:
def bark(self):
print("bark")
Kunsa shi!
Wannan ya kasance game da azuzuwan, masu gini da sake amfani da lambar a cikin azuzuwan tare da ra'ayoyin gado. Yanzu mun kusa ƙarshen shirin mu. A wannan gaba, yakamata ku iya samar da kyawawan lambobi masu kyau, masu karantawa da taƙaitaccen lambobi a cikin Python.
Za mu ga manufar modules da fakiti a cikin lacca ta gaba.
Leave a Reply