Pami devlopè yo, pwogram oryante objè te atire yon sa yo konsiderab. Lang òdinatè popilè Python menm jan an tou respekte paradigm nan objè oryante.
Li fè fas ak defini objè ak klas nan Python, ki fòme baz pou prensip OOP yo. Nan leson patikilye sa a sou "pwogram oryante objè nan Python," w ap aprann kijan pou deklare klas Python, kreye objè nan men yo, epi sèvi ak kat teknik OOP yo.
Se konsa, premye bagay an premye.
Ki sa ki se pwogram oryante objè?
Konsantre prensipal pwogramasyon oryante objè (OOP) se kreyasyon "objè". Yon koleksyon varyab ak fonksyon ki konekte ansanm fòme yon objè.
Yo souvan refere yo varyab sa yo kòm atribi objè a, epi konpòtman li yo souvan refere yo kòm fonksyon li yo. Atik sa yo bay aplikasyon an yon estrikti ki pi efikas ak konprann. Yon otomobil se yon egzanp yon atik.
Si machin nan te yon atik, atribi li yo ta gen ladan bagay tankou koulè li, modèl, pri, mak, elatriye Anplis de sa, li ta akselere, ralanti, ak chanje angrenaj.
Yon lòt ilistrasyon: Si nou panse de yon chen kòm yon atik, Lè sa a, kèk nan karakteristik li yo ta ka koulè, kwaze, non, pwa, elatriye E li ta dwe deplase sou, jape, jwe, elatriye.
Paske li enkòpore konsèp mond reyèl la tankou objè, kache, eritaj, elatriye nan pwogramasyon, pwogram oryante objè yo byen li te ye. Paske li tèlman sanble ak sikonstans mond reyèl la, vizyalizasyon vin pi senp.
Konsèp pwogramasyon ki oryante sou objè yo
Klas ak objè nan Python
Tankou tout lòt lang oryante objè, Python pèmèt ou konsepsyon klas pou jenere objè. Kalite done ki pi popilè nan Python, ki gen ladan fisèl, lis, diksyonè, ak lòt objè, se klas entegre.
Yon klas se yon gwoup metòd lye ak varyab egzanp ki defini yon sèten kalite objè. Yo ka wè yon klas kòm modèl oswa modèl pou yon objè. Varyab ki fòme yon klas yo konnen kòm atribi.
Yon objè se yon manm nan yon klas ki gen yon seri atribi defini. Poutèt sa, nenpòt kantite objè ka kreye lè l sèvi avèk menm klas la.
Klas Python yo defini lè l sèvi avèk mo klas la, ki answit swiv pa non klas la ak yon kolon. Yon ilistrasyon yon klas jako ta ka:
Isit la, nou deklare Parrot klas vid la lè l sèvi avèk mo kle klas la. Nou kreye egzanp nan klas yo. Yon egzanp se yon objè patikilye ki te fèt nan yon sèten klas. 'pase' se souvan itilize kòm yon kanpe-an pou kòd ki aplikasyon nou ka abandone pou moman sa a. Nou ka egzekite kòd la Python san yo pa ogmante yon erè lè nou itilize mo kle "pase".
Yon enstansyasyon nan yon klas rezilta nan yon objè (egzans). Se sèlman deskripsyon objè a defini lè yo kreye yon klas. Kòm yon rezilta, pa gen okenn depo oswa RAM resevwa lajan.
Yon egzanp yon objè klas jako se:
Obj se yon objè klas jako nan egzanp sa a.
Ann di nou konnen spesifik sou jako. Nou pral kounye a montre kouman yo kreye klas jako ak objè li yo.
Metòd espesyal ( __init__ )
Yon metòd ki rele init defini atribi yo ke chak objè Parrot dwe genyen (). Lè yon nouvo objè Parrot fòme, fonksyon __init__ kreye eta inisyal objè a lè li bay valè nou bay nan pwopriyete objè a.
Se konsa, chak nouvo egzanp nan klas la inisyalize lè l sèvi avèk __init__(). Malgre ke __init__() ka aksepte nenpòt kantite paramèt, pwòp tèt ou se toujou premye paramèt la.
Yon referans a egzanp klas aktif la enkli nan agiman pwòp tèt ou a. Paramèt pwòp tèt ou a, ki gen lyen ak adrès objè aktyèl la nan yon klas epi ki ba nou aksè a done varyab li yo (objè a), vle di sa.
1 Egzanp
Nou etabli yon klas ki rele Parrot nan kòd ki anwo a. Apre sa, pwopriyete yo defini. Karakteristik yo nan yon bagay se pwopriyete li yo. Fonksyon __init__ klas la se kote karakteristik sa yo espesifye.
Lè yon objè fòme, metòd inisyalize a se youn ki rele okòmansman. Lè sa a, egzanp nan klas jako yo kreye. Blaze ak Wonda nan egzanp sa a se referans (valè) nan nouvo objè nou yo. __class .species pèmèt nou jwenn aksè nan atribi klas la.
Chak egzanp nan yon klas gen menm karakteristik yo. Ou ka jwenn aksè nan karakteristik egzanp yo tou lè l sèvi avèk blaze.name ak blaze.age. Men, tout egzanp yon klas gen atribi inik.
2 Egzanp
Metòd
Fonksyon ki defini andedan kò yon klas yo rele metòd. Yo anplwaye yo presize ki jan yon atik pral konpòte.
De metòd, chante () ak danse, yo defini nan aplikasyon an susmansyone (). Paske yo envoke yo sou yon objè egzanp, tankou flanm dife, yo refere yo kòm metòd egzanp.
Fondasyon konsèp OOPS la
Kat lide debaz yo nan pwogram oryante objè yo se:
- Pòsyon tè
- Encapsulation
- Polimòfis
- Astraksyon
Pòsyon tè
Souvan moun di tibebe ki fenk fèt yo ke yo gen karakteristik figi ki sanble ak paran yo oswa ke yo eritye karakteristik patikilye nan men paran yo.
Li posib ke ou te tou obsève ke ou pataje kèk karakteristik ak paran ou. Sitiyasyon an nan mond reyèl la se jistis menm jan ak eritaj tou.
Sepandan, nan ka sa a, karakteristik "klas paran yo" yo pase nan "klas timoun yo." Aspè sa yo refere yo kòm "pwopriyete" ak "metòd" nan kontèks sa a.
Yon klas ka tire metòd li yo ak atribi nan yon lòt klas lè l sèvi avèk teknik la ke yo rekonèt kòm eritaj. Eritaj se pwosesis pou yon klas timoun resevwa pwopriyete yon klas paran.
Egzanp:
Klas paran moun nan se eritye pa klas timoun Boy nan egzanp ki anwo a. Paske ti gason ap eritye de moun, nou ka jwenn aksè nan tout metòd ak atribi li yo lè nou kreye yon egzanp nan klas Boy la.
Nan klas ti gason an, yo te defini yon metòd ki rele schoolName tou. Objè klas paran an pa kapab jwenn aksè nan metòd schoolName. Sepandan, metòd schoolName ka rele lè yo kreye yon objè klas timoun (Boy).
Encapsulation
Bay chak varyab nan pwogram nan aksè mondyal se pa yon mouvman ki gen bon konprann lè w ap travay ak klas ak manyen done sansib.
San yo pa bay pwogram nan aksè konplè a nenpòt nan varyab sa yo, ankapsulasyon bay yon mekanis pou nou jwenn varyab ki nesesè yo.
Metòd ki defini klèman pou objektif la ka itilize pou mete ajou, modifye, oswa efase done ki sòti nan varyab yo. Metòd sa a nan pwogramasyon gen avantaj ki genyen nan sekirite amelyore ak kontwòl sou opinyon done yo.
Gade kouman varyab yo ka aksesib byen vit nan demonstrasyon ki anba a:
Polimòfis
Ann di w ap itilize telefòn ou pou browse Instagram manje. Lè ou te resevwa anvi pou koute kèk mizik, ou jwenn aksè nan Spotify epi yo te kòmanse jwe chante pi renmen ou.
Apre yon tan, ou te resevwa yon apèl, kidonk ou te kanpe tou sa ou t ap fè nan background nan pou reponn li. Zanmi w te rele epi mande w pou w voye tèks yo sou nimewo telefòn yon sèten moun.
Se konsa, ou te voye l ' nimewo telefòn nan SMS ak te pote sou travay ou. Èske ou te ranmase sou anyen? Avèk yon sèl aparèy—telefòn mobil ou—ou ka navige nan fil, koute mizik, pran epi fè apèl nan telefòn, ak mesaj.
Se poutèt sa, polimorfism se konparab ak sa. Poly vle di anpil, ak morph vle di diferan fòm. Se poutèt sa, polimorfis kòm yon antye refere a yon bagay ki gen divès fòm.
Oswa "yon bagay" ki, depann sou sikonstans la, ka montre yon varyete de konpòtman. Nan OOPS, polimòfis dekri fonksyon ki gen menm non men konpòtman diferan. Altènativman, yon siyati fonksyon diferan ak menm non fonksyon an (paramèt pase nan fonksyon an).
Egzanp:
Isit la, nou ka itilize bèt varyab la pou iterasyon atravè objè yo nan zèb la ak lapen an, lè l sèvi avèk metòd egzanp respektif yo. Kòm yon rezilta, konpòtman (koulè () & manje ()) tou de zèb la ak lapen an reprezante isit la pa yon sèl varyab ki rele bèt. Se poutèt sa, li respekte règ polimorfis yo.
Astraksyon
Ou gen plis chans itilize yon laptop, telefòn, oswa tablèt pou li kontni sa a. Pandan w ap li l, w ap sipoze pran nòt, souliye pasaj kle yo, epi petèt sere kèk enfòmasyon nan dosye pèsonèl ou.
Tout sa ou ka wè lè ou li sa a se yon "ekran" ak done yo ke yo te parèt ba ou. Ou jis wè kle klavye a pandan w ap tape, kidonk, ou pa bezwen enkyete w sou sibtilite entèn tankou kijan pouse yon kle ka lakòz mo sa a parèt sou ekran.
Altènativman, ki jan peze yon bouton sou ekran ou a ka lanse yon nouvo tab.
Se poutèt sa, tou sa nou ka obsève nan sitiyasyon sa a se abstrè. Nou ka sèlman wè rezilta a li ap kreye epi yo pa sibtilite anndan yo (ki aktyèlman enpòtan pou nou).
Menm jan ak sa a, abstraksyon sèlman revele fonksyon yo ke tout bagay posede pandan y ap kache nenpòt aplikasyon oswa detay entèn yo.
Objektif prensipal Abstraksyon se kache enfòmasyon background ak nenpòt aplikasyon done ki pa etranje pou moun wè sèlman sa yo bezwen wè. Li ede nan jere konpleksite kòd la.
Egzanp:
Yon klas abstrè ki gen rapò ak machin prezan isit la. Paske li eritye nan klas abstrè ABC, li abstrè. Paske metòd abstrè yo pa defini oswa rete vid, Veyikil klas la gen yon metòd abstrè ki rele pa nan wou ki manke yon definisyon.
Yo antisipe klas yo ki eritye klas abstrè yo bay aplikasyon metòd la.
Benefis konsèp OOPS yo
- Pa encapsulation, sekirite anwo nan syèl la ak enfòmasyon sou enfòmasyon prive yo reyalize.
- Fleksibilite nan gen anpil vèsyon polimòfik nan menm klas la.
- Wo nivo konpleksite kòd te redwi pa abstraksyon.
- Olye pou yo tamize nan plizyè santèn liy kòd pou jwenn yon sèl pwoblèm, modilarite nan pwogramasyon fè debogaj senp.
- Se eritaj pwopriyete klas paran yon klas timoun ki lakòz reitilizasyon Kòd.
- Rezoud pwoblèm efikas posib paske nou kreye klas ki fè aksyon ki nesesè pou chak mini-pwoblèm. Pwoblèm sa a ka rezoud menm pi vit paske nou ka reitilize klas sa yo.
konklizyon
An konklizyon, nou te aprann sou lide OOPS nan Python, paradigm pwogram ki pi cho kounye a.
Apre w fin li sa a, ou dwe reyalize ke paradigm OOPS la konplètman fè fas ak lide nan klas ak objè yo. ak konsèp OOPS tankou enkapsulasyon, polimòfis, eritaj, ak abstraksyon.
Kite yon Reply