Muchidzidzo ichi, tichadzidza nezve makirasi, vavaki uye nhaka mupython.
Aya mazano anonyanya kukosha muchirongwa chikuru apo mhando dzakasiyana dzinodiwa kuti dzitsanangurwe.
Classes
Makirasi akakosha mukuronga uye haana kujeka kune python. Zvimwe zvakawanda kuronga mitauro tsigira pfungwa yemakirasi. Isu tinoshandisa makirasi kutsanangura mhando itsva dze data.
Parizvino, tadzidza nezvemhando dze data muPython senge nhamba, tambo, uye booleans. Aya ndiwo akakosha kana akapusa data mhando muPython. Isu takaonawo akati wandei emhando dze data dzakaoma senge zvinyorwa uye maduramazwi.
Nepo marudzi aya achibatsira zvakanyanya, haagone kushandiswa nguva dzose kuenzanisira pfungwa dzakaoma. Semuenzaniso, funga nezvepfungwa yepfungwa, kana ngoro yekutenga. Ngoro yekutenga haisi boolean kana rondedzero. Iyo yakasiyana mhando yedata. Saka isu tinogona kushandisa makirasi kutsanangura mhando nyowani kuenzanisira pfungwa chaidzo.
Zvino, ngatitsanangurirei rudzi rutsva rwe data inonzi point. Iyi mhando nyowani ichange iine nzira sezvatakaongorora kare.
Aya ndiwo maitiro auchaita:
Tinotanga nekutsanangura kirasi nekushandisa izwi rekuti "kirasi" uye ipapo ipapo tinopa kirasi yedu zita.
class Point
Zvino, tarisa gungano rekupa mazita randashandisa pano. Ndanyora tsamba yekutanga pano, iyi ndiyo yatinoti pascal nameming conference. Kokorodzano iyi yakasiyana neiyo yatinoshandisa pakupa mazita emarudzi nemashandiro ayo atinogara tichishandisa mabhii maduku uye tinoparadzanisa mazwi akawanda tichishandisa underscore. Asi kana tichitumidza makirasi mazita, hatishandise underscore kuparadzanisa mazwi akawanda pane kudaro, tinoisa mavara ekutanga ezwi rega rega.
Mushure mekutsanangura kirasi yedu, colon inoshandiswa zvinoreva kuti ikozvino chivharo chinotsanangurwa.
class Point:
def move (self):
Muchivharo ichi, tinogona kutsanangura ese mabasa kana nzira dzemapoinzi. Semuenzaniso, tinokwanisa kutsanangura basa rinonzi "move" rekufambisa poindi. Ziva kuti patinongonyora maparenthesis akavhurika, PyCharm anowedzera "self" pano. Iri ishoko rinokosha uye regai ndidzoke kune izvi munguva pfupi. Ngatidhindei "kufamba" pane terminal.
print("move")
Ngatitsanangure imwe nzira senge "dhirowa" toidhinda pane terminal.
def draw(self):
print("draw")
Tapedza netsanangudzo yekirasi yedu ye “point”. Nerudzi rutsva urwu, tinogona kugadzira zvinhu zvitsva. Kirasi inongotsanangura purani kana template yekugadzira zvinhu zvinova zviitiko chaizvo zvinoenderana neiyo blueprint. Kugadzira chinhu, tinonyora zita rekirasi yedu tobva tadaidza senge basa. Izvi zvinogadzira chinhu chitsva uye wochidzosera. Ipapo tinogona kuchengeta chinhu ichocho mune chinja. Rega ndikuratidze:
Pano tatsanangura “poindi1” inova nzvimbo ine mativi matatu. Iwe unogona kuona izvo, isu tinokwanisa kudhinda ega ega coordes pane terminal.
Tinogona kushandisa nzira mbiri "kudhirowa" uye "kufambisa" neichi pfungwa.
Saka kuti tidzokorore, tinoshandisa makirasi kutsanangura mhando itsva uye mhando idzi dzinogona kuva nenzira dzatinotsanangura mumutumbi wekirasi. Makirasi anogona kuve nehunhu hwatinogona kuseta chero kupi muzvirongwa zvedu.
Vagadziri
Kusvika ikozvino, takadzidza kugadzira mhando itsva tichishandisa makirasi. Ikozvino pane dambudziko diki nekushandiswa uku. Tinogona kugadzira chinhu chepoindi pasina x kana y kuronga tichishandisa makirasi uye izvo hazvina kunaka. Rega ndikuratidze.
Ngatigadzire poindi toiprinda tisati taseta x coordinate. Kumhanyisa chirongwa chedu kunoguma nekukanganisa kwehunhu seizvi:
Zvinoreva kuti chinhu chepoinzi hachina hunhu hunonzi x. Zvino dambudziko nderekuti zvinokwanisika kuve nechinhu chinonongedza pasina x kana y coordinates. Izvi hazvina musoro sezvo pese patinotaura nezvechinhu, tinoda kuziva kuti poindi iyoyo iri papi. Kugadzirisa dambudziko iri, tinoshandisa muvaki. Muvaki ibasa rinodanwa panguva yekugadzira chinhu.
Heano mashandisiro atinoita muvaki. Kutanga, ngatipfuurei x uye y anoronga kukosha muchirongwa chiri pamusoro.
point = Point(10, 20)
print(point.x)
Zvino, tinoda kuwedzera nzira yakakosha mukirasi ino inonzi muvaki. Syntax yayo yakaita seiyi:
def __init__(self, x, y):
init
ipfupi pakutanga, uye iri ndiro basa kana nzira inodanwa kana chinhu chitsva chagadzirwa. Iyo x uye y inowedzerwa ipapo self
kuwedzera mamwe ma parameters maviri.
Mushure meizvozvo, isu tinofanirwa kumepu x uye y kune dzakapfuura tsika kureva 10 uye 20
self.x = x
self.y = y
Tinoshandisa iyo self
kureva chinhu chiripo uye tobva taisa chirevo che x kune x nharo yakapfuura ku "x". Nenzira iyi, kushandisa init
nzira, tinogona kutanga zvinhu zvedu. Iyi nzira inonzi muvaki. Ngatimhanyei chirongwa chedu.
Iye zvino, tinogona kushandura iyo x uye y inoronga gare gare. Ngatigadzirise x kuronga:
point = Point(10, 20)
point.x = 11
print(point.x)
Ikozvino, iyo x coordination inogadziridzwa kukosha 11.
kusimbisa muviri
Hechino chiitiko chinonakidza kwauri.
Ndinoda kuti utsanangure mhando itsva inonzi munhu. Izvi "Munhu" zvinhu zvinofanirwa kuve ne "name
” hunhu pamwe ne“talk()
”Nzira.
Iri basa riri nyore uye harifanire kutora anopfuura maminetsi mashoma.
mhinduro
Tanga nekutsanangura kirasi "Munhu" seizvi:
class Person:
self.name = name
Tichatsanangura muvaki gare gare. Iye zvino, tinogona kugadzira chinhu che "Munhu". Ngatitii Johane
john = Person("John Smith")
print(john.name)
john.talk()
Zvino, enda kune chikamu chekutanga chekodhi uye gadzira muvaki.
def __init__(self, name):
Iyo yekupedzisira kodhi ichaita seizvi:
Iwe unogona zvakare kushandisa tambo dzakarongwa uye mamwe maconcepts pamwe chete nemakirasi uye vanovaka.
nhaka
Nhaka imwe pfungwa yakabatana nemakirasi anokuita kuti ushandisezve kodhi.
Funga nezvechikamu ichi chekodhi.
class Dog:
def walk(self):
print("walk")
Isu takagadzira kirasi "Imbwa" ine "kufamba" nzira. Nenzira iyi, tiri kungo dhinda meseji yekufamba pane terminal. Ngatitii, muchirongwa chaicho, Pane mitsara gumi yekodhi panzvimbo pemutsara mumwe chete pano. Mune ramangwana, kana imwe kirasi ichidikanwa kuti tive ne "kufamba" nzira, tichafanirwa kudzokorora iyo yose code. Izvi hazvina kunaka.
Muchirongwa, tine musimboti unonzi DRY uri muchidimbu kuti usazvidzokorora. Ngatitii imwe nguva mune ramangwana, tinoona dambudziko nenzira yedu ye "kufamba" uye kana takadzokorora kana kudzokorora nzira iyi mune dzimwe nzvimbo dzakawanda, tichafanirwa kudzoka togadzirisa dambudziko iri munzvimbo imwe neimwe yatakanyora izvi. code. Saka ndosaka mukuronga tisingafanire kutsanangura chinhu kaviri.
Kune nzira dzakasiyana dzekugadzirisa dambudziko iri asi pano tichadzidza imwe iri nyore kune vanotanga uye inonzi nhaka. Muchiitiko ichi, isu tichagadzira imwe kirasi "inoyamwisa" uye totsanangura yedu "kufamba" hunhu mukirasi iyoyo.
class Mammal:
def walk(self):
print("walk")
Mushure mekutsanangura kirasi yedu ye "Mammal" tinogona kushandisa nhaka kupfuudza hunhu seizvi:
Makirasi ese ari maviri embwa nekatsi ari kugara nhaka nzira dzese dzekirasi dzakatsanangurwa mukirasi yevabereki vavo. Iye zvino, tinogona kuwedzera nzira dzakananga kune imbwa seizvi:
class Dog:
def bark(self):
print("bark")
Putira!
Izvi zvese zvaive zvemakirasi, vavaki uye kushandisazve kodhi mumakirasi ane pfungwa dzenhaka. Iye zvino tave kusvika kumagumo enhevedzano yedu. Panguva ino, iwe unofanirwa kukwanisa kuburitsa makodhi akanaka, anoverengeka uye mapfupi muPython.
Isu tichaona iyo pfungwa yemamodule uye mapakeji mune inotevera hurukuro.
Leave a Reply