Table of Contents[Hide][Show]
Ntawm cov developers, object-oriented programming tau nyiam ib tug loj hauv qab no. Nrov computer hom lus Python kuj ua raws li cov khoom-oriented paradigm.
Nws cuam tshuam nrog kev txhais cov khoom thiab cov chav kawm hauv Python, uas ua rau lub hauv paus rau OOPs cov ntsiab lus. Hauv qhov kev qhia no ntawm "object-oriented programming hauv Python," koj yuav kawm paub tshaj tawm cov chav kawm Python, tsim cov khoom los ntawm lawv, thiab siv plaub txoj kev OOPs.
Yog li, thawj yam ua ntej.
Object-Oriented Programming yog dab tsi?
Lub hom phiaj tseem ceeb ntawm object-oriented programming (OOP) yog kev tsim "cov khoom". Kev sib sau ua ke ntawm kev sib txuas sib txawv thiab cov haujlwm ua rau ib qho khoom.
Cov kev hloov pauv no feem ntau raug xa mus rau qhov khoom tus cwj pwm, thiab nws cov cwj pwm feem ntau hu ua nws txoj haujlwm. Cov khoom no muab daim ntawv thov kom muaj txiaj ntsig zoo thiab nkag siab zoo dua. Lub tsheb yog ib qho piv txwv ntawm ib yam khoom.
Yog tias lub tsheb yog ib yam khoom, nws cov cwj pwm yuav suav nrog tej yam xws li nws cov xim, qauv, nqe, hom, thiab lwm yam. Tsis tas li ntawd, nws yuav nrawm, qeeb, thiab hloov lub zog.
Lwm qhov piv txwv: Yog tias peb xav tias tus dev yog ib yam khoom, ces qee qhov ntawm nws cov yam ntxwv yuav yog xim, hom, npe, qhov hnyav, thiab lwm yam. Thiab nws yuav txav mus los, barking, ua si, thiab lwm yam.
Vim tias nws suav nrog cov ntsiab lus tiag tiag hauv ntiaj teb xws li khoom, zais, qub txeeg qub teg, thiab lwm yam rau hauv kev ua haujlwm, kev ua haujlwm ntawm cov khoom siv tau paub zoo. Vim tias nws zoo ib yam li cov xwm txheej hauv ntiaj teb tiag tiag, kev pom pom tau yooj yim dua.
Object-Oriented Programming Concepts
Chav Kawm & Cov Khoom hauv Python
Zoo li tag nrho lwm yam lus hais lus, Python ua rau koj tsim cov chav kawm los tsim cov khoom. Cov ntaub ntawv nrov tshaj plaws hauv Python, suav nrog cov hlua, cov npe, phau ntawv txhais lus, thiab lwm yam khoom, yog cov chav kawm tsim.
Ib chav kawm yog ib pawg ntawm cov kev sib txuas thiab cov piv txwv sib txawv uas txhais tau tias qee yam khoom. Ib chav kawm yuav raug pom raws li tus qauv lossis qauv rau ib qho khoom. Cov variables uas tsim ib chav kawm yog hu ua attributes.
Ib yam khoom yog ib tug tswv cuab ntawm ib chav kawm uas muaj cov txheej txheem teev tseg. Vim li no, txhua yam khoom siv tau tsim los siv tib chav kawm.
Cov chav kawm Python tau txhais siv cov lus hauv chav kawm, uas tom qab ntawd ua raws li cov npe hauv chav kawm thiab cov kab lus. Ib qho piv txwv ntawm chav kawm parrot tej zaum yuav yog:
Ntawm no, peb tshaj tawm cov chav kawm khoob Parrot siv cov lus tseem ceeb hauv chav kawm. Peb tsim cov piv txwv los ntawm cov chav kawm. Ib qho piv txwv yog ib yam khoom uas tau tsim los ntawm ib chav kawm. 'pass' feem ntau siv los ua tus sawv cev rau cov cai uas nws qhov kev siv peb yuav forego rau lub sijhawm. Peb tuaj yeem ua tiav Python code yam tsis muaj qhov yuam kev los ntawm kev siv lo lus "pass" lo lus tseem ceeb.
Ib qho instantiation ntawm chav kawm ua rau ib yam khoom (piv txwv). Tsuas yog cov khoom piav qhia tsuas yog txhais tau thaum tsim chav kawm. Raws li qhov tshwm sim, tsis muaj chaw cia lossis RAM raug faib.
Ib qho piv txwv ntawm cov khoom hauv chav kawm parrot yog:
Obj yog Parrot-chav khoom hauv qhov piv txwv no.
Cia peb hais tias peb paub tshwj xeeb txog parrots. Peb tam sim no yuav ua qauv qhia yuav ua li cas los tsim cov chav kawm parrot thiab nws cov khoom.
Txoj Kev Tshwj Xeeb (__init__)
Ib txoj kev hu ua init txhais cov cwj pwm uas txhua yam khoom Parrot yuav tsum muaj (). Thaum tsim cov khoom Parrot tshiab, cov haujlwm __init__ tsim cov khoom pib lub xeev los ntawm kev muab cov txiaj ntsig uas peb muab rau hauv cov khoom vaj khoom tsev.
Yog li, txhua qhov piv txwv tshiab ntawm chav kawm yog pib los ntawm kev siv __init__(). Txawm hais tias __init__() tuaj yeem lees txais txhua qhov tsis muaj, nws tus kheej yeej ib txwm yog thawj qhov ntsuas.
Ib qho piv txwv rau chav kawm nquag muaj nyob rau hauv qhov kev sib cav ntawm tus kheej. Tus kheej parameter, uas txuas mus rau qhov chaw nyob ntawm cov khoom tam sim no ntawm chav kawm thiab muab peb nkag mus rau nws (cov khoom siv) cov ntaub ntawv sib txawv, qhia tias.
Piv txwv li 1
Peb tsim ib chav kawm hu ua Parrot nyob rau hauv cov cai saum toj no. Tom ntej no, cov khoom yog txhais. Cov yam ntxwv ntawm ib yam yog nws cov khoom. Chav kawm __init__ muaj nuj nqi yog qhov uas cov yam ntxwv no tau teev tseg.
Thaum ib yam khoom raug tsim, txoj kev pib pib yog qhov uas hu ua pib. Tom qab ntawd, piv txwv ntawm chav kawm Parrot raug tsim. Blaze thiab Wonda hauv qhov piv txwv no yog cov neeg siv khoom (tus nqi) rau peb cov khoom tshiab. __class .species tso cai rau peb nkag mus rau hauv chav kawm attribute.
Txhua qhov piv txwv ntawm ib chav kawm muaj cov yam ntxwv zoo ib yam. Cov yam ntxwv piv txwv kuj tuaj yeem nkag mus siv blaze.name thiab blaze.age. Tag nrho cov piv txwv ntawm ib chav kawm muaj cov yam ntxwv tshwj xeeb, txawm li cas los xij.
Piv txwv li 2
txoj kev
Cov haujlwm uas tau teev tseg hauv chav kawm lub cev yog hu ua cov txheej txheem. Lawv raug ua hauj lwm los qhia seb ib yam khoom yuav coj li cas.
Ob txoj hauv kev, hu nkauj ( ) thiab seev cev, tau txhais hauv daim ntawv thov uas tau hais tseg saum toj no ( ). Vim tias lawv raug hu rau ib qho piv txwv khoom, xws li nplaim taws, cov no raug xa mus rau cov qauv piv txwv.
Cov ntsiab lus ntawm OOPS lub tswv yim
Plaub lub tswv yim tseem ceeb ntawm object-oriented programming yog:
- qub txeeg qub teg
- Encapsulation
- Polymorphism
- Abstraction
qub txeeg qub teg
Tib neeg feem ntau qhia cov menyuam yug tshiab tias lawv muaj ntsej muag zoo ib yam li cov niam txiv lossis lawv tau txais txiaj ntsig tshwj xeeb los ntawm lawv niam lawv txiv.
Nws yog tau hais tias koj kuj tau pom tias koj qhia ob peb yam ntxwv nrog koj niam koj txiv. Qhov xwm txheej ntawm lub ntiaj teb tiag tiag kuj zoo ib yam li qub txeeg qub teg thiab.
Txawm li cas los xij, hauv qhov no, "cov chav kawm niam txiv" cov yam ntxwv raug xa mus rau "cov chav kawm me nyuam." Cov yam ntxwv no raug xa mus rau "cov khoom" thiab "txoj hauv kev" hauv cov ntsiab lus no.
Ib chav kawm tuaj yeem muab nws txoj hauv kev thiab cov cwj pwm los ntawm lwm chav kawm los ntawm kev siv cov txheej txheem hu ua qub txeeg qub teg. Inheritance yog tus txheej txheem ntawm cov menyuam kawm ntawv tau txais cov khoom ntawm niam txiv chav kawm.
Piv txwv li:
Cov niam txiv qeb Tib neeg tau txais txiaj ntsig los ntawm cov tub ntxhais kawm Tub hauv qhov piv txwv saum toj no. Vim Leej Tub tau txais txiaj ntsig los ntawm Tib Neeg, peb tuaj yeem nkag mus rau tag nrho nws txoj hauv kev thiab cov cwj pwm thaum peb tsim ib qho piv txwv ntawm Tub Tub.
Hauv chav kawm Tub, ib txoj hauv kev hu ua schoolName kuj tau txhais. Cov khoom hauv chav kawm niam txiv tsis tuaj yeem nkag mus rau txoj kev schoolName. Txoj kev SchoolName tuaj yeem hu tau los ntawm kev tsim cov khoom siv hauv chav kawm me me (Boy).
Encapsulation
Muab txhua qhov sib txawv hauv qhov kev pab cuam thoob ntiaj teb nkag mus tsis yog ib qho kev txav mus los thaum ua haujlwm nrog cov chav kawm thiab tuav cov ntaub ntawv rhiab heev.
Yog tsis muab qhov kev zov me nyuam nkag mus rau ib qho ntawm cov kev hloov pauv no, encapsulation muab lub tshuab rau peb kom tau txais cov hloov pauv tsim nyog.
Cov txheej txheem uas tau hais meej meej rau lub hom phiaj tuaj yeem siv los hloov kho, hloov kho, lossis tshem tawm cov ntaub ntawv los ntawm kev hloov pauv. Hom kev programming no muaj qhov zoo ntawm kev txhim kho kev ruaj ntseg thiab kev tswj hwm cov ntaub ntawv tawm tswv yim.
Saib seb qhov hloov pauv sai npaum li cas tuaj yeem nkag mus tau hauv kev ua qauv qhia hauv qab no:
Polymorphism
Wb hais tias koj siv koj lub xov tooj mus xauj lub Instagram txau. Thaum koj tau txais kev yaum kom mloog qee cov suab paj nruag, koj nkag mus rau Spotify thiab pib ua koj cov nkauj nyiam.
Tom qab ib lub sijhawm, koj tau txais kev hu, yog li koj nres txhua yam koj tau ua hauv keeb kwm yav dhau los teb nws. Koj tus phooj ywg hu thiab thov kom koj xa lawv ib tus neeg tus xov tooj.
Yog li koj xa nws tus lej xov tooj los ntawm SMS thiab ua nrog koj cov dej num. Koj puas tau khaws dab tsi? Tsuas yog ib lub cuab yeej - koj lub xov tooj ntawm tes - koj tuaj yeem nthwv dej los ntawm kev pub, mloog suab paj nruag, nqa thiab hu xov tooj, thiab xa lus.
Yog li ntawd, polymorphism yog piv rau qhov ntawd. Poly txhais tau tias ntau, thiab morph qhia txog ntau hom ntawv. Yog li ntawd, polymorphism tag nrho yog hais txog ib yam dab tsi nrog ntau hom.
Los yog "ib yam dab tsi" uas, nyob ntawm qhov xwm txheej, tuaj yeem nthuav tawm ntau yam cwj pwm. Hauv OOPS, polymorphism piav txog kev ua haujlwm nrog tib lub npe tab sis txawv tus cwj pwm. Xwb, ib qho kev kos npe sib txawv nrog tib lub npe ua haujlwm (tsis dhau mus rau qhov ua haujlwm).
Piv txwv li:
Ntawm no, peb tuaj yeem siv cov tsiaj sib txawv los iterate hla cov khoom ntawm Zebra thiab Luav, siv lawv cov qauv piv txwv. Yog li ntawd, tus cwj pwm (xim () & noj ()) ntawm Zebra thiab Luav yog sawv cev ntawm no los ntawm ib qho txawv txav hu ua tsiaj. Yog li ntawd nws yog ua raws li cov cai ntawm polymorphism.
Abstraction
Koj feem ntau yuav siv lub laptop, xov tooj, lossis ntsiav tshuaj los nyeem cov ntsiab lus no. Thaum nyeem nws, koj kuj tseem tab tom sau ntawv, sau cov nqe lus tseem ceeb, thiab tej zaum khaws qee cov ntaub ntawv hauv koj cov ntaub ntawv ntiag tug.
Txhua yam koj tuaj yeem pom thaum koj nyeem qhov no yog "screen" nrog cov ntaub ntawv uas tau tshwm sim rau koj. Koj tsuas yog pom cov keyboard tus yuam sij thaum koj ntaus ntawv, yog li koj tsis tas yuav txhawj xeeb txog cov subtleties sab hauv zoo li cas thawb tus yuam sij tuaj yeem ua rau lo lus ntawd tshwm rau ntawm lub vijtsam.
Xwb, yuav ua li cas nias lub pob ntawm koj lub vijtsam tuaj yeem tso lub tab tshiab.
Yog li ntawd, txhua yam uas peb tuaj yeem soj ntsuam hauv qhov xwm txheej no yog qhov tsis txaus ntseeg. Peb tsuas tuaj yeem pom qhov tshwm sim nws yog tsim thiab tsis yog qhov tsis txaus ntseeg sab hauv (uas yog qhov tseem ceeb rau peb).
Zoo ib yam li qhov no, abstraction tsuas yog qhia cov haujlwm uas txhua yam muaj thaum zais ib qho kev siv lossis cov ntsiab lus sab hauv.
Abstraction lub hom phiaj tseem ceeb yog zais cov ntaub ntawv keeb kwm yav dhau thiab kev siv cov ntaub ntawv extraneous kom tib neeg tsuas pom qhov lawv xav pom. Nws pab tswj cov cai qhov nyuaj.
Piv txwv li:
Cov chav kawm paub daws teeb meem tsheb muaj nyob ntawm no. Vim tias nws tau txais los ntawm cov chav kawm paub daws teeb meem ABC, nws yog abstract. Vim hais tias txoj kev paub daws teeb tsis tau txhais los yog nyob twj ywm, lub tsheb hauv chav kawm muaj ib txoj kev paub daws teeb meem hu ua tsis muaj lub log uas tsis muaj lub ntsiab lus.
Lawv cia siab tias cov chav kawm uas tau txais txiaj ntsig ntawm cov chav kawm paub daws teeb meem los muab cov qauv siv.
Cov txiaj ntsig ntawm OOPS cov ntsiab lus
- Los ntawm encapsulating, kev ruaj ntseg siab thiab cov ntaub ntawv ntiag tug tau ua tiav.
- Flexibility nyob rau hauv muaj ntau polymorphic versions ntawm tib chav kawm ntawv.
- Cov theem siab ntawm txoj cai complexity raug txo los ntawm abstraction.
- Es tsis txhob sifting los ntawm ntau pua kab ntawm code los nrhiav ib qho teeb meem, lub modularity ntawm programming ua debugging yooj yim.
- Code rov siv dua yog tshwm sim los ntawm cov menyuam hauv chav kawm ntawv qub txeeg qub teg ntawm niam txiv cov khoom hauv chav kawm.
- Kev daws teeb meem zoo yog ua tau vim peb tsim cov chav kawm uas tsim nyog ua rau txhua qhov teeb meem me. Cov teeb meem hauv qab no tuaj yeem daws tau sai dua vim tias peb tuaj yeem rov siv cov chav kawm ntawd.
xaus
Hauv kev xaus, peb tau kawm txog OOPS cov tswv yim hauv Python, qhov kub tshaj qhov programming paradigm tam sim no.
Tom qab nyeem qhov no, koj yuav tsum tau paub tias OOPS paradigm tag nrho cuam tshuam nrog lub tswv yim ntawm cov chav kawm thiab cov khoom. thiab OOPS cov ntsiab lus xws li encapsulation, polymorphism, qub txeeg qub tes, thiab abstraction.
Sau ntawv cia Ncua