Table of Contents[Hide][Show]
Hauv zaj lus qhuab qhia no, peb yuav kawm txog cov chav kawm, tus tsim thiab cov qub txeeg qub teg hauv python.
Cov ntsiab lus no tseem ceeb heev hauv qhov kev zov me nyuam loj uas yuav tsum muaj ntau hom kev txhais.
Cov chav kawm
Cov chav kawm yog qhov tseem ceeb hauv programming thiab lawv tsis yog tshwj xeeb rau python. Ntau lwm yam hom lus txhawb kev xav ntawm cov chav kawm. Peb siv cov chav kawm los txhais cov ntaub ntawv tshiab.
Txog tam sim no, peb tau kawm txog cov ntaub ntawv tseem ceeb hauv Python xws li cov lej, cov hlua, thiab booleans. Cov no yog cov hom ntaub ntawv yooj yim lossis yooj yim hauv Python. Peb kuj tau pom ob peb hom ntaub ntawv nyuaj xws li cov npe thiab phau ntawv txhais lus.
Txawm hais tias cov hom no muaj txiaj ntsig zoo heev, lawv tsis tuaj yeem siv los ua qauv cov ntsiab lus nyuaj. Piv txwv li, xav txog lub tswv yim ntawm qhov taw tes, lossis lub laub yuav khoom. Lub tawb nqa khoom tsis yog boolean lossis daim ntawv teev npe. Nws yog cov ntaub ntawv sib txawv. Yog li peb tuaj yeem siv cov chav kawm los txhais cov hom tshiab los ua qauv cov ntsiab lus tiag.
Tam sim no, cia peb txhais cov ntaub ntawv tshiab hu ua point. Hom tshiab no yuav muaj txoj hauv kev raws li peb tau kuaj ua ntej.
Nov yog qhov koj yuav ua:
Peb pib los ntawm kev txhais cov chav kawm los ntawm kev siv lo lus "chav kawm" thiab tom qab ntawd peb muab peb lub npe rau chav kawm.
class Point
Tam sim no, saib lub rooj sib tham naming uas kuv tau siv ntawm no. Kuv tau sau thawj tsab ntawv ntawm no, qhov no yog qhov peb hu ua lub rooj sib tham naming pascal. Lub rooj sib tham no txawv ntawm qhov peb siv rau npe rau peb qhov sib txawv thiab cov haujlwm uas peb ib txwm siv cov ntawv me thiab cais ntau lo lus siv tus lej qis. Tab sis thaum naming chav kawm, peb tsis siv ib tug underscore cais ntau lo lus xwb, peb sau thawj tsab ntawv ntawm txhua lo lus.
Tom qab txhais peb cov chav kawm, ib txoj hnyuv yog siv uas txhais tau hais tias tam sim no ib qho thaiv tau txhais.
class Point:
def move (self):
Hauv qhov thaiv no, peb tuaj yeem txhais tag nrho cov haujlwm lossis txoj hauv kev uas yog cov ntsiab lus. Piv txwv li, peb tuaj yeem txhais lub luag haujlwm hu ua "tsav" rau kev txav ib qho taw tes. Nco ntsoov tias sai li sai tau thaum peb ntaus ntawv qhib, PyCharm cia li ntxiv "tus kheej" ntawm no. Nov yog lo lus tseem ceeb tshwj xeeb thiab cia kuv rov qab mus rau qhov no sai sai. Cia peb luam "tsav" rau ntawm lub davhlau ya nyob twg.
print("move")
Cia peb txhais lwm txoj kev xws li "kos" thiab luam tawm ntawm lub davhlau ya nyob twg.
def draw(self):
print("draw")
Peb tau ua tiav nrog lub ntsiab lus ntawm peb chav kawm "point". Nrog hom tshiab no, peb tuaj yeem tsim cov khoom tshiab. Ib chav kawm tsuas yog txhais cov phiaj xwm lossis cov qauv tsim los tsim cov khoom uas yog qhov tseeb raws li cov qauv tsim. Txhawm rau tsim ib qho khoom, peb ntaus lub npe ntawm peb chav kawm thiab tom qab ntawd hu nws ib yam li kev ua haujlwm. Qhov no tsim ib yam khoom tshiab thiab tom qab ntawd rov qab los. Tom qab ntawd peb tuaj yeem khaws cov khoom ntawd rau hauv qhov sib txawv. Cia kuv qhia koj:
Ntawm no peb tau txhais qhov "point1" uas yog peb-dimensional point. Koj tuaj yeem pom tau tias, peb tuaj yeem luam tus neeg tswj hwm ntawm lub davhlau ya nyob twg.
Peb tuaj yeem siv ob txoj hauv kev "kos" thiab "tsav" nrog rau qhov no.
Yog li kom rov hais dua, peb siv cov chav kawm los txhais cov hom tshiab thiab cov hom no tuaj yeem muaj txoj hauv kev uas peb txhais hauv lub cev ntawm chav kawm. Cov chav kawm tuaj yeem muaj tus cwj pwm uas peb tuaj yeem teeb tsa txhua qhov chaw hauv peb cov kev kawm.
Cov kws qhia tshuaj
Txog tam sim no, peb tau kawm yuav ua li cas los tsim hom tshiab siv cov chav kawm. Tam sim no muaj teeb meem me me rau qhov kev siv no. Peb tuaj yeem tsim cov khoom taw tes yam tsis muaj x lossis y koom tes siv cov chav kawm thiab qhov tsis zoo. Cia kuv qhia koj.
Cia peb tsim ib qho taw tes thiab luam tawm ua ntej peb teeb tsa x tswj. Kev khiav peb qhov program ua rau muaj qhov yuam kev zoo li no:
Nws txhais tau tias cov khoom taw tes tsis muaj tus cwj pwm hu ua x. Tam sim no qhov teeb meem yog tias nws muaj peev xwm muaj qhov khoom taw tes yam tsis muaj x lossis y ua haujlwm. Qhov no tsis muaj txiaj ntsig zoo li thaum twg peb tham txog ib qho ntsiab lus, peb yuav tsum paub qhov chaw ntawd nyob qhov twg. Yuav kom daws tau qhov teeb meem no, peb siv lub constructor. Lub constructor yog ib qho haujlwm uas tau hu thaum lub sijhawm tsim khoom.
Ntawm no yog yuav ua li cas peb siv ib tug constructor. Ua ntej, cia peb dhau qhov x thiab y qhov tseem ceeb hauv qhov kev pab cuam saum toj no.
point = Point(10, 20)
print(point.x)
Tam sim no, peb yuav tsum tau ntxiv ib txoj kev tshwj xeeb hauv chav kawm no hu ua constructor. Nws syntax zoo li no:
def __init__(self, x, y):
init
luv luv rau pib, thiab qhov no yog qhov muaj nuj nqi los yog txoj kev uas tau txais hu thaum ib tug tshiab point object raug tsim. Cov x thiab y yog ntxiv tom qab self
kom ntxiv ob qho ntxiv.
Tom qab ntawd, peb yuav tsum qhia qhov x thiab y mus rau qhov tseem ceeb dhau los xws li 10 thiab 20
self.x = x
self.y = y
Peb siv lub self
xa mus rau cov khoom tam sim no thiab tom qab ntawd peb teeb tsa tus cwj pwm x rau x sib cav dhau mus rau txoj haujlwm "x". Hauv qhov no, siv init
txoj kev, peb tuaj yeem pib peb cov khoom. Txoj kev no yog hu ua constructor. Cia peb khiav peb qhov program.
Tam sim no, peb tuaj yeem hloov pauv qhov x thiab y kev tswj hwm tom qab. Cia peb hloov kho x coordinate:
point = Point(10, 20)
point.x = 11
print(point.x)
Tam sim no, tus x tswj tau hloov kho rau tus nqi 11.
Ib ce muaj zog
Nov yog ib qho kev tawm dag zog txaus nyiam rau koj.
Kuv xav kom koj txhais hom tshiab hu ua tus neeg. Cov khoom "Tus neeg" no yuav tsum muaj "name
"attribute as well as a"talk()
”Txoj kev.
Nws yog ib txoj hauj lwm yooj yim thiab yuav tsum tsis txhob siv ntau tshaj li ob peb feeb.
tshuaj
Pib nrog txhais cov chav kawm "Tib neeg" zoo li no:
class Person:
self.name = name
Peb mam li txhais lub constructor tom qab. Tam sim no, peb tuaj yeem tsim qhov "Tus Neeg" khoom. Wb hu nws John
john = Person("John Smith")
print(john.name)
john.talk()
Tam sim no, mus rau thawj feem ntawm tus lej thiab tsim tus tsim.
def __init__(self, name):
Qhov kawg code yuav zoo li no:
Koj tseem tuaj yeem siv cov hlua khi thiab lwm cov ntsiab lus ua ke nrog cov chav kawm thiab cov tsim qauv.
qub txeeg qub teg
Inheritance yog lwm lub tswv yim cuam tshuam nrog cov chav kawm uas cia koj rov qab siv tus lej.
Xav txog qhov no code.
class Dog:
def walk(self):
print("walk")
Peb tau tsim ib chav kawm "Dog" nrog rau txoj kev "taug kev". Hauv txoj kev no, peb tsuas yog luam tawm cov lus taug kev ntawm lub davhlau ya nyob twg. Wb hais tias, nyob rau hauv ib tug tiag tiag kev pab cuam, Muaj 10 kab ntawm code es tsis txhob tsuas yog ib kab ntawm no. Nyob rau hauv lub neej yav tom ntej, yog xav tau lwm chav kawm kom muaj txoj kev "taug kev", peb yuav tau rov qab tag nrho cov cai ntawd. Qhov no tsis yog qhov zoo tagnrho.
Hauv kev ua haujlwm, peb muaj lub hauv paus ntsiab lus hu ua DRY uas yog luv rau tsis txhob rov ua koj tus kheej. Cia peb hais tias qee lub sijhawm yav tom ntej, peb pom qhov teeb meem nrog peb txoj kev "taug kev" thiab yog tias peb tau rov ua dua lossis theej cov qauv no hauv ntau qhov chaw, peb yuav tau rov qab los kho qhov teeb meem hauv txhua qhov chaw peb tau luam tawm qhov no. code. Yog li ntawd yog vim li cas hauv programming peb yuav tsum tsis txhob txhais ib yam dab tsi ob zaug.
Muaj ntau txoj hauv kev los daws qhov teeb meem no tab sis ntawm no peb yuav kawm txog qhov uas yooj yim dua rau cov pib tshiab thiab nws yog hu ua qub txeeg qub teg. Hauv qhov no, peb yuav tsim lwm chav kawm "mammal" thiab txhais peb "taug kev" tus cwj pwm hauv chav kawm ntawd.
class Mammal:
def walk(self):
print("walk")
Tom qab txhais peb cov chav kawm "Mammal" peb tuaj yeem siv qub txeeg qub teg kom dhau cov cwj pwm zoo li no:
Ob chav aub thiab miv tau txais txhua txoj hauv kev hauv chav kawm uas tau teev tseg hauv lawv cov chav kawm niam txiv. Tam sim no, peb tuaj yeem ntxiv cov txheej txheem tshwj xeeb rau cov dev zoo li no:
class Dog:
def bark(self):
print("bark")
Qhwv!
Qhov no yog txhua yam hais txog cov chav kawm, tus tsim qauv thiab rov siv cov cai hauv cov chav kawm nrog cov tswv yim qub txeeg qub teg. Tam sim no peb tab tom ze rau qhov kawg ntawm peb series. Los ntawm qhov no, koj yuav tsum muaj peev xwm tsim tau zoo, nyeem tau thiab cov lej hauv Python.
Peb yuav pom lub tswv yim ntawm cov modules thiab cov pob khoom hauv cov lus qhuab qhia tom ntej.
Sau ntawv cia Ncua