Table of Contents[Ferstopje][Toanje]
Under ûntwikkelders hat objekt-rjochte programmearring in grutte oanhing oanlutsen. Populêre kompjûtertaal Python hâldt him ek oan it objekt-rjochte paradigma.
It giet om it definiearjen fan objekten en klassen yn Python, dy't de basis foarmet foar OOPs-prinsipes. Yn dizze tutorial oer "objekt-rjochte programmearring yn Python," sille jo leare hoe't jo Python-klassen kinne ferklearje, objekten fan har meitsje en de fjouwer OOPs-techniken brûke.
Dus, earste ding earst.
Wat is objektrjochte programmearring?
It haadfokus fan objekt-oriïntearre programmearring (OOP) is it meitsjen fan "objekten". In samling fan meiinoar ferbûne fariabelen en funksjes makket in objekt út.
Dizze fariabelen wurde faak oantsjutten as de attributen fan it objekt, en har gedrach wurdt faak oantsjutten as syn funksjes. Dizze items jouwe de applikaasje in effektiver en begryplike struktuer. In auto is in foarbyld fan in item.
As de auto wie in item, syn attributen soe befetsje dingen lykas syn kleur, model, priis, merk, ensfh Dêrneist, it soe versnellen, fertrage, en feroarje gears.
In oare yllustraasje: As wy tinke oan in hûn as in item, dan guon fan syn skaaimerken kinne wêze kleur, ras, namme, gewicht, ensfh En hy soe wêze bewege oer, blaffen, boartsjen, ensfh.
Om't it realistyske begripen lykas objekten, ferburgen, erfenis, ensfh yn programmearring opnimt, is objekt-rjochte programmearring goed bekend. Om't it sa ferlykber is mei omstannichheden yn 'e echte wrâld, wurdt fisualisaasje ienfâldiger makke.
Objekt-rjochte programmearring konsepten
Klassen en objekten yn Python
Lykas alle oare objekt-oriïntearre talen kinne Python jo klassen ûntwerpe om objekten te generearjen. De populêrste gegevenstypen yn Python, ynklusyf snaren, listen, wurdboeken en oare objekten, binne ynboude klassen.
In klasse is in groep keppele metoaden en eksimplaarfariabelen dy't in bepaald soarte objekt definiearje. In klasse kin sjoen wurde as it model of sjabloan foar in objekt. De fariabelen dy't in klasse foarmje binne bekend as attributen.
In foarwerp is in lid fan in klasse dy't in definieare set attributen hat. Hjirtroch kinne elk oantal objekten makke wurde mei deselde klasse.
Python-klassen wurde definieare mei de wurdklasse, dy't dan folge wurdt troch de klassenamme en in kolon. In yllustraasje fan in papegaaiklasse kin wêze:
Hjir ferklearje wy de lege klasse Parrot mei it klassekaaiwurd. Wy meitsje eksimplaren út klassen. In eksimplaar is in bepaald objekt dat makke is út in bepaalde klasse. 'pass' wurdt faak brûkt as in stand-in foar koade wêrfan de ymplemintaasje wy foar it momint kinne ferlitte. Wy kinne de Python-koade útfiere sûnder in flater op te heljen troch it kaaiwurd "pass" te brûken.
In instansiaasje fan in klasse resultearret yn in objekt (eksimplaar). Allinnich de beskriuwing fan it objekt wurdt definiearre as in klasse wurdt makke. As gefolch, gjin opslach of RAM wurdt tawiisd.
In foarbyld fan in papegaaiklasseobjekt is:
Obj is in Parrot-klasse foarwerp yn dit eksimplaar.
Litte wy sizze dat wy spesifiken witte oer papegaaien. Wy sille no sjen litte hoe't jo de papegaaiklasse en har objekten meitsje kinne.
Spesjale metoade (__init__)
In metoade neamd init definiearret de attributen dy't elk Parrot-objekt moat hawwe (). As in nij Parrot foarwerp wurdt foarme, makket de funksje __init__ it foarwerp syn earste steat troch in tawize de wearden wy leverje binnen it foarwerp syn eigenskippen.
Dus, elke nije eksimplaar fan 'e klasse wurdt inisjalisearre mei __init__ (). Hoewol't __init__ () kin akseptearje eltse oantal parameters, sels is altyd de earste parameter.
In ferwizing nei de aktive klasse eksimplaar is opnaam yn it sels argumint. De selsparameter, dy't keppele is oan it adres fan it aktuele objekt fan in klasse en ús tagong jout ta de gegevens fan 'e fariabelen fan it (it objekt), betsjut dat.
Foarbyld 1
Wy fêstige in klasse neamd Parrot yn 'e boppesteande koade. Folgjende, eigenskippen wurde definiearre. De skaaimerken fan in ding binne syn eigenskippen. De klasse __init__ funksje is dêr't dizze skaaimerken wurde oantsjutte.
As in objekt wurdt foarme, is de initialisatormetoade dejinge dy't earst neamd wurdt. Dan wurde eksimplaren fan 'e Parrot-klasse makke. Blaze en Wonda binne yn dit gefal ferwizings (wearden) nei ús nije objekten. __class .species kinne ús tagong ta de klasse attribút.
Elke eksimplaar fan in klasse hat deselde skaaimerken. De eksimplaar skaaimerken kinne ek tagonklik wurde mei blaze.name en blaze.age. Alle eksimplaren fan in klasse hawwe lykwols unike eksimplaarattributen.
Foarbyld 2
metoaden
Funksjes definieare binnen it lichem fan in klasse wurde metoaden neamd. Se wurde ynset om oan te jaan hoe't in item him sil gedrage.
Twa metoaden, sjonge () en dûnsje, wurde definiearre yn 'e earder neamde applikaasje (). Om't se wurde oproppen op in eksimplaarobjekt, lykas flamme, wurde dizze oantsjutten as eksimplaarmetoaden.
Fundamentals fan it OOPS-konsept
De fjouwer kearnideeën fan objekt-oriïntearre programmearring binne:
- Erfenis
- Encapsulation
- Polymorfisme
- Abstraction
Erfenis
Minsken fertelle faak oan pasgeborenen dat se gesichtskaaimerken hawwe dy't lykje op dy fan har âlden of dat se bepaalde eigenskippen hawwe fan har âlden.
It is mooglik dat jo ek observearre hawwe dat jo in pear skaaimerken diele mei jo âlden. De situaasje yn 'e echte wrâld is ek frij ferlykber mei erfskip.
Yn dit gefal wurde de skaaimerken fan 'âlderklassen' lykwols trochjûn oan 'e "berneklassen". Dizze aspekten wurde yn dit ferbân oantsjut as "eigenskippen" en "metoaden".
In klasse kin har metoaden en attributen ôfliede fan in oare klasse troch de technyk te brûken bekend as erfskip. Erfskip is it proses fan in bernklasse dy't de eigenskippen fan in âlderklasse ûntfangt.
Foarbyld:
De âlderklasse Human wurdt erfd troch de bernklasse Boy yn it foarbyld hjirboppe. Om't Boy erft fan Human, kinne wy tagong krije ta al syn metoaden en attributen as wy in eksimplaar meitsje fan 'e Boy-klasse.
Yn de Jongensklasse is ek in metoade definiearre mei de namme schoolName. It âlderklasseobjekt kin gjin tagong krije ta de metoade schoolName. De metoade schoolName kin lykwols neamd wurde troch it meitsjen fan in bern klasse objekt (Boy).
Encapsulation
Elke fariabele yn it programma globale tagong jaan is gjin wize beweging by it wurkjen mei klassen en it behanneljen fan gefoelige gegevens.
Sûnder te jaan it programma folsleine tagong ta ien fan dy fariabelen, jout encapsulation in meganisme foar ús te krijen de nedige fariabelen.
Metoaden dy't eksplisyt definieare binne foar it doel kinne brûkt wurde om gegevens fan fariabelen te aktualisearjen, te bewurkjen of te wiskjen. Dizze metoade fan programmearring hat de foardielen fan ferbettere feiligens en kontrôle oer de gegevensynfier.
Sjoch hoe fluch fariabelen tagonklik kinne wurde yn 'e demonstraasje hjirûnder:
Polymorfisme
Litte wy sizze dat jo jo tillefoan brûke om te blêdzjen troch de Instagram feeds. Doe't jo de drang krigen om nei wat muzyk te harkjen, hawwe jo tagong ta Spotify en begon jo favorite ferske te spyljen.
Nei in skoft krigen jo in oprop, dus jo hawwe ûnderbrutsen wat jo op 'e eftergrûn diene om it te beantwurdzjen. Jo freon belle en frege dat jo him it tillefoannûmer fan in bepaalde persoan sms'je.
Dat jo hawwe him it tillefoannûmer fia SMS stjoerd en trochgien mei jo taken. Hawwe jo wat oppakt? Mei mar ien apparaat - jo mobile tillefoan - kinne jo troch feeds surfe, nei muzyk harkje, tillefoantsjes nimme en meitsje, en berjochten.
Dêrom is polymorfisme dêrmei te fergelykjen. Poly betsjut in protte, en morph jout ferskate foarmen oan. Dêrom ferwiist polymorfisme as gehiel nei iets mei ferskate foarmen.
Of "iets" dat, ôfhinklik fan de omstannichheid, in ferskaat oan gedrach fertoane kin. Yn OOPS beskriuwt polymorfisme funksjes mei deselde nammen mar ûnderskate gedrach. As alternatyf, in oare funksje hântekening mei deselde funksje namme (parameters trochjûn oan de funksje).
Foarbyld:
Hjir kinne wy it fariabele dier brûke om te iterearjen oer de objekten fan 'e Zebra en it Konijn, mei har respektive metoaden fan eksimplaar. As gefolch, it gedrach (kleur () & eats ()) fan sawol de Zebra en de Rabbit wurde fertsjintwurdige hjir troch in inkele fariabele neamd bist. It hâldt him dêrom oan de regels fan polymorfisme.
Abstraction
Jo brûke wierskynlik in laptop, tillefoan of tablet om dizze ynhâld te lêzen. Wylst jo it lêze, meitsje jo nei alle gedachten ek oantekeningen, ûnderstreke wichtige passaazjes, en bewarje miskien wat ynformaasje yn jo persoanlike bestannen.
Alles wat jo kinne sjen as jo dit lêze is in "skerm" mei de gegevens dy't jo wurde werjûn. Jo sjogge gewoan de toetsen fan it toetseboerd as jo typen, dus jo hoege jo gjin soargen te meitsjen oer ynterne subtiliteiten lykas hoe't it drukken fan in toets kin dat wurd op it skerm ferskine.
As alternatyf, hoe't drukke op in knop op jo skerm kin in nije ljepper starte.
Dêrom, wat wy kinne observearje yn dizze situaasje is abstrakt. Wy kinne allinich it resultaat sjen dat it skept en net de yngewikkeldheden fan binnen (dy't eins fan belang binne foar ús).
Fergelykber mei dit ûntbleatet abstraksje allinich de funksjes dy't alles hat, wylst alle ymplemintaasjes as ynterne details ferbergje.
It haaddoel fan Abstraksje is om eftergrûnynformaasje en elke ymplemintaasje fan bûtenlânske gegevens te ferbergjen, sadat minsken allinich sjogge wat se moatte sjen. It helpt by it behearen fan de kompleksiteit fan 'e koade.
Foarbyld:
In auto-relatearre abstrakte klasse is hjir oanwêzich. Om't it erft fan 'e abstrakte klasse ABC, is it abstrakt. Omdat abstrakte metoaden binne net definiearre of bliuwe leech, hat de klasse Vehicle in abstrakte metoade neamd gjin tsjillen dy't mist in definysje.
Se ferwachtsje de klassen dy't de abstrakte klassen erven om de ymplemintaasje fan 'e metoade te jaan.
Foardielen fan OOPS-konsepten
- Troch ynkapseling wurde hege feiligens en gegevensprivacy berikt.
- Fleksibiliteit yn it hawwen fan in protte polymorphic ferzjes fan deselde klasse.
- It hege nivo fan koade kompleksiteit waard fermindere troch abstraksje.
- Ynstee fan troch hûnderten rigels koade te siftjen om ien probleem te lokalisearjen, makket de modulariteit fan programmearring debuggen ienfâldich.
- Koade wergebrûk wurdt feroarsake troch in bern klasse syn erfenis fan âlder klasse eigenskippen.
- Effektive probleemoplossing is mooglik om't wy klassen meitsje dy't de nedige aksjes dogge foar elk miniprobleem. It folgjende probleem kin noch rapper wurde oplost, om't wy dy klassen kinne opnij brûke.
Konklúzje
Ta beslút learden wy oer OOPS-ideeën yn Python, it heulste programmearparadigma op it stuit.
Nei it lêzen fan dit, moatte jo realisearre hawwe dat it OOPS-paradigma folslein omgiet mei it idee fan klassen en objekten. en OOPS-begripen lykas ynkapseling, polymorfisme, erfskip en abstraksje.
Leave a Reply