M'ndandanda wazopezekamo[Bisani][Show]
Mu phunziro ili, tiphunzira za makalasi, omanga ndi cholowa mu python.
Malingaliro awa ndi ofunikira kwenikweni mu pulogalamu yayikulu pomwe mitundu yosiyanasiyana imafunikira kufotokozedwa.
makalasi
Makalasi ndi ofunikira pamapulogalamu ndipo sali achindunji kwa python. Ena ambiri zilankhulo zamakompyuta kuthandizira malingaliro a magalasi. Timagwiritsa ntchito makalasi kutanthauzira mitundu yatsopano ya data.
Pakadali pano, taphunzira za mitundu yoyambira ya data mu Python monga manambala, zingwe, ndi ma booleans. Awa ndi mitundu yoyambira kapena yosavuta ya data mu Python. Tawonanso mitundu ingapo ya data yovuta monga mindandanda ndi madikishonale.
Ngakhale kuti mitundu iyi ndi yothandiza kwambiri, siingagwiritsidwe ntchito nthawi zonse kufotokoza malingaliro ovuta. Mwachitsanzo, taganizirani za mfundo, kapena ngolo yogulira zinthu. Ngolo yogulitsira sizinthu zabodza kapena mndandanda. Ndi mtundu wina wa data. Chifukwa chake titha kugwiritsa ntchito makalasi kutanthauzira mitundu yatsopano kuti titsatire malingaliro enieni.
Tsopano, tiyeni tifotokoze mtundu watsopano wa data wotchedwa point. Mtundu watsopanowu ukhala ndi njira monga tidawonera kale.
Umu ndi momwe mudzachitire:
Timayamba ndikutanthauzira kalasi pogwiritsa ntchito mawu ofunikira a "class" ndipo pambuyo pake timapatsa kalasi yathu dzina.
class Point
Tsopano, yang'anani pa msonkhano waukulu wa mayina womwe ndaugwiritsa ntchito pano. Ndalemba kalata yoyamba apa, iyi ndi yomwe timatcha msonkhano wa mayina a pascal. Msonkhanowu ndi wosiyana ndi umene timagwiritsa ntchito potchula zosintha ndi ntchito zomwe nthawi zonse timagwiritsa ntchito zilembo zazing'ono ndikulekanitsa mawu angapo pogwiritsa ntchito underscore. Koma potchula makalasi, sitigwiritsa ntchito underscore kulekanitsa mawu angapo m'malo mwake, timalemba zazikulu chilembo choyambirira cha liwu lililonse.
Pambuyo pofotokozera kalasi yathu, colon imagwiritsidwa ntchito kutanthauza kuti tsopano chipika chikufotokozedwa.
class Point:
def move (self):
Mu chipika ichi, tikhoza kufotokozera ntchito zonse kapena njira zomwe zili ndi mfundo. Mwachitsanzo, titha kufotokozera ntchito yotchedwa "kusuntha" posuntha mfundo. Dziwani kuti tikangolemba zolemba zotseguka, PyCharm imangowonjezera "self" apa. Awa ndi mawu ofunika kwambiri ndipo ndiroleni ndibwerere ku izi posachedwa. Tiyeni tisindikize "kusuntha" pa terminal.
print("move")
Tiyeni tifotokoze njira ina monga "kujambula" ndikusindikiza pa terminal.
def draw(self):
print("draw")
Tamaliza ndi tanthauzo la kalasi yathu ya "mfundo". Ndi mtundu watsopanowu, tikhoza kupanga zinthu zatsopano. Kalasi imangotanthauzira pulani kapena template yopangira zinthu zomwe ndizochitika zenizeni kutengera pulaniyo. Kuti tipange chinthu, timalemba dzina la kalasi yathu ndikuchitcha ngati ntchito. Izi zimapanga chinthu chatsopano ndikuchibwezeretsa. Ndiye tikhoza kusunga chinthucho mu variable. Ndiroleni ndikuwonetseni:
Apa tatanthauzira "point1" yomwe ndi mfundo ya mbali zitatu. Mutha kuwona izi, titha kusindikiza zolumikizira payokha pa terminal.
Titha kugwiritsa ntchito njira ziwiri "kujambula" ndi "kusuntha" ndi mfundo iyi.
Kotero kuti tibwerezenso, timagwiritsa ntchito makalasi kuti tifotokoze mitundu yatsopano ndipo mitundu iyi ikhoza kukhala ndi njira zomwe timafotokozera mu thupi la kalasi. Makalasi amatha kukhala ndi zomwe titha kuziyika paliponse pamapulogalamu athu.
Opanga
Mpaka pano, taphunzira kupanga mitundu yatsopano pogwiritsa ntchito makalasi. Tsopano pali vuto laling'ono ndi kukhazikitsa uku. Titha kupanga mfundo popanda x kapena y kugwirizanitsa pogwiritsa ntchito makalasi ndipo izi sizabwino. Ndiroleni ndikuwonetseni.
Tiyeni tipange mfundo ndikusindikiza tisanakhazikitse x coordinate. Kuyendetsa pulogalamu yathu kumabweretsa cholakwika chonga ichi:
Zikutanthauza kuti mfundoyo ilibe khalidwe lotchedwa x. Tsopano vuto ndiloti ndizotheka kukhala ndi chinthu chopanda chigawo cha x kapena y. Izi sizimamveka chifukwa tikamakamba za mfundo, timafunika kudziwa pomwe mfundoyo ili. Kuti tithane ndi vutoli, timagwiritsa ntchito womanga. Wopanga ndi ntchito yomwe imatchedwa panthawi yopanga chinthu.
Umu ndi momwe timagwiritsira ntchito omanga. Choyamba, tiyeni tidutse ma x ndi y amagwirizanitsa madongosolo omwe ali pamwambapa.
point = Point(10, 20)
print(point.x)
Tsopano, tifunika kuwonjezera njira yapadera m'kalasiyi yotchedwa constructor. Syntax yake ili motere:
def __init__(self, x, y):
init
ndi lalifupi kuti liyambike, ndipo iyi ndi ntchito kapena njira yomwe imatchedwa pamene chinthu chatsopano chapangidwa. X ndi y amawonjezedwa pambuyo pake self
kuwonjezera magawo awiri owonjezera.
Pambuyo pake, tiyenera kupanga mapu a x ndi y ku zikhalidwe zomwe zadutsa mwachitsanzo 10 ndi 20
self.x = x
self.y = y
Timagwiritsa ntchito self
kutchula chinthu chamakono ndiyeno timayika x mawonekedwe a x mkangano woperekedwa ku ntchito "x". Mwa njira iyi, kugwiritsa ntchito init
njira, tikhoza kuyambitsa zinthu zathu. Njira imeneyi imatchedwa womanga. Tiyeni tiyendetse pulogalamu yathu.
Tsopano, titha kusintha malumikizanidwe a x ndi y pambuyo pake. Tiyeni tisinthe x coordinate:
point = Point(10, 20)
point.x = 11
print(point.x)
Tsopano, mgwirizano wa x wasinthidwa kukhala 11.
Masewera olimbitsa thupi
Nachi chochita chosangalatsa kwa inu.
Ndikufuna kuti mufotokoze mtundu watsopano wotchedwa munthu. Zinthu izi "Munthu" ziyenera kukhala ndi "name
” chikhalidwe komanso “talk()
”Njira.
Ndi ntchito yosavuta ndipo sikuyenera kupitilira mphindi zingapo.
Anakonza
Yambani ndi kufotokoza kalasi "Munthu" motere:
class Person:
self.name = name
Tidzafotokozera womanga pambuyo pake. Tsopano, tikhoza kupanga chinthu "Munthu". Tiyeni tizitcha John
john = Person("John Smith")
print(john.name)
john.talk()
Tsopano, pitani ku gawo loyamba la code ndikupanga womanga.
def __init__(self, name):
Code yomaliza idzawoneka motere:
Mutha kugwiritsanso ntchito zingwe zojambulidwa ndi malingaliro ena molumikizana ndi makalasi ndi omanga.
Cholowa
Cholowa ndi lingaliro lina lolumikizidwa ndi makalasi omwe amakulolani kugwiritsanso ntchito kachidindo.
Ganizirani kachidutswa ka code.
class Dog:
def walk(self):
print("walk")
Tapanga kalasi "Galu" ndi njira ya "kuyenda". Mwanjira iyi, tikungosindikiza uthenga woyenda pa terminal. Tinene, mu pulogalamu yeniyeni, Pali mizere 10 yamakhodi m'malo mwa mzere umodzi wokha apa. M'tsogolomu, ngati kalasi ina idzafunika kukhala ndi njira ya "kuyenda", tidzayenera kubwereza code yonseyo. Izi sizoyenera.
Mumapulogalamu, tili ndi mfundo yotchedwa DRY yomwe ndi yachidule kuti musabwerezenso nokha. Tinene kuti nthawi ina mtsogolomo, tidzapeza vuto ndi njira yathu ya “kuyenda” ndipo ngati tabwereza kapena kubwereza njira imeneyi m’malo ena ambiri, tidzabweranso kudzakonza vutolo m’malo aliwonse amene tapangako. kodi. Ndicho chifukwa chake mu mapulogalamu sitiyenera kutanthauzira chinachake kawiri.
Pali njira zosiyanasiyana zothetsera vutoli koma apa tiphunzira imodzi yomwe ndi yosavuta kwa oyamba kumene ndipo imatchedwa cholowa. Pankhaniyi, tidzapanga gulu lina la "nyama yoyamwitsa" ndikutanthauzira "kuyenda" kwathu m'kalasi.
class Mammal:
def walk(self):
print("walk")
Titatha kufotokoza kalasi yathu ya "Mammal" titha kugwiritsa ntchito cholowa kuti tikwaniritse izi:
Agalu ndi amphaka amalandira njira zonse zamakalasi zomwe zimafotokozedwa m'gulu la makolo awo. Tsopano, titha kuwonjezera njira za agalu monga izi:
class Dog:
def bark(self):
print("bark")
Womba mkota!
Izi zinali zonse zokhudzana ndi makalasi, omanga ndikugwiritsanso ntchito kachidindo m'makalasi okhala ndi malingaliro a cholowa. Tsopano tikuyandikira kumapeto kwa mndandanda wathu. Pofika pano, muyenera kupanga ma code abwino, owerengeka komanso achidule mu Python.
Tiwona lingaliro la ma module ndi phukusi munkhani yotsatira.
Siyani Mumakonda