Werrej[Aħbi][Uri]
Fost l-iżviluppaturi, l-ipprogrammar orjentat lejn l-oġġetti ġibed segwaċi mdaqqsa. Lingwa tal-kompjuter popolari Python bl-istess mod jaderixxi mal-paradigma orjentata lejn l-oġġetti.
Jitratta d-definizzjoni ta 'oġġetti u klassijiet f'Python, li jifforma l-bażi għall-prinċipji OOPs. F'dan it-tutorja dwar "programmazzjoni orjentata lejn l-oġġetti f'Python," titgħallem kif tiddikjara klassijiet Python, toħloq oġġetti minnhom, u tuża l-erba 'tekniki OOPs.
Allura, l-ewwel ħaġa l-ewwel.
X'inhu l-Programmazzjoni Orjentata lejn l-Oġġetti?
Il-fokus ewlieni tal-ipprogrammar orjentat lejn l-oġġetti (OOP) huwa l-ħolqien ta '"oġġetti". Ġabra ta' varjabbli u funzjonijiet interkonnessi tagħmel oġġett.
Dawn il-varjabbli spiss jissejħu l-attributi tal-oġġett, u l-imgieba tiegħu spiss jissejħu l-funzjonijiet tiegħu. Dawn l-oġġetti jipprovdu l-applikazzjoni bi struttura aktar effettiva u li tinftiehem. Karozza hija eżempju ta 'oġġett.
Kieku l-karozza kienet oġġett, l-attributi tagħha jinkludu affarijiet bħall-kulur, il-mudell, il-prezz, il-marka, eċċ. Barra minn hekk, taċċellera, tnaqqas il-veloċità u tbiddel il-gerijiet.
Illustrazzjoni oħra: Jekk naħsbu f’kelb bħala oġġett, allura xi wħud mill-karatteristiċi tiegħu jistgħu jkunu l-kulur, ir-razza, l-isem, il-piż, eċċ. U hu jkun qed jiċċaqlaq, jinbiħ, jilgħab, eċċ.
Minħabba li tinkorpora kunċetti tad-dinja reali bħal oġġetti, ħabi, wirt, eċċ fl-ipprogrammar, l-ipprogrammar orjentat lejn l-oġġetti huwa magħruf sew. Minħabba li hija tant simili għal ċirkostanzi tad-dinja reali, il-viżwalizzazzjoni ssir aktar sempliċi.
Kunċetti ta' Programmazzjoni Orjentata lejn l-Oġġetti
Klassijiet u Oġġetti f'Python
Bħall-lingwi l-oħra kollha orjentati lejn l-oġġetti, Python jippermettilek tfassal klassijiet biex tiġġenera oġġetti. It-tipi ta 'dejta l-aktar popolari f'Python, inklużi kordi, listi, dizzjunarji, u oġġetti oħra, huma klassijiet mibnija.
Klassi hija grupp ta' metodi konnessi u varjabbli ta' istanza li jiddefinixxu ċertu tip ta' oġġett. Klassi tista' titqies bħala l-mudell jew il-mudell għal oġġett. Il-varjabbli li jiffurmaw klassi huma magħrufa bħala attributi.
Oġġett huwa membru ta' klassi li għandha sett definit ta' attributi. Minħabba dan, kwalunkwe numru ta 'oġġetti jistgħu jinħolqu bl-użu tal-istess klassi.
Il-klassijiet Python huma definiti bl-użu tal-kelma klassi, li mbagħad tiġi segwita mill-isem tal-klassi u kolon. Illustrazzjoni ta’ klassi tal-pappagall tista’ tkun:
Hawnhekk, aħna niddikjaraw il-klassi vojta Parrot billi tuża l-keyword tal-klassi. Aħna noħolqu każijiet minn klassijiet. Istanza hija oġġett partikolari li sar minn ċerta klassi. 'pass' huwa spiss użat bħala sostitut għall-kodiċi li l-implimentazzjoni tiegħu nistgħu nirrinunzjaw għalissa. Nistgħu nwettqu l-kodiċi Python mingħajr ma ngħollu żball billi nużaw il-kelma prinċipali "pass".
Instanzjazzjoni ta' klassi tirriżulta f'oġġett (istanza). Id-deskrizzjoni tal-oġġett biss hija definita meta tinħoloq klassi. Bħala riżultat, l-ebda ħażna jew RAM ma hija allokata.
Eżempju ta' oġġett tal-klassi tal-pappagall huwa:
Obj huwa oġġett tal-klassi Pappagall f'dan il-każ.
Ejja ngħidu li nafu ispeċifiċitajiet dwar il-pappagalli. Issa se nuru kif toħloq il-klassi tal-pappagall u l-oġġetti tagħha.
Metodu Speċjali ( __init__ )
Metodu msejjaħ init jiddefinixxi l-attributi li kull oġġett Parrot għandu jkollu (). Meta jiġi ffurmat oġġett Parrot ġdid, il-funzjoni __init__ toħloq l-istat inizjali tal-oġġett billi tassenja l-valuri li nipprovdu fi ħdan il-proprjetajiet tal-oġġett.
Allura, kull istanza ġdida tal-klassi hija inizjalizzata billi tuża __init__(). Għalkemm __init__() jista 'jaċċetta kwalunkwe numru ta' parametri, self huwa dejjem l-ewwel parametru.
Referenza għall-istanza tal-klassi attiva hija inkluża fl-awtoargument. Il-parametru awto, li jgħaqqad mal-indirizz tal-oġġett kurrenti ta 'klassi u jagħtina aċċess għad-dejta tal-varjabbli tiegħu (tal-oġġett), ifisser dan.
Eżempju 1
Aħna stabbilixxew klassi msejħa Parrot fil-kodiċi ta 'hawn fuq. Sussegwentement, il-proprjetajiet huma definiti. Il-karatteristiċi ta 'ħaġa huma l-proprjetajiet tagħha. Il-funzjoni __init__ tal-klassi hija fejn dawn il-karatteristiċi huma speċifikati.
Meta oġġett jiġi ffurmat, il-metodu tal-inizjalizzatur huwa dak li jissejjaħ inizjalment. Imbagħad, jinħolqu każijiet tal-klassi Parrot. Blaze u Wonda f'dan il-każ huma referenzi (valuri) għall-oġġetti l-ġodda tagħna. __class .species jippermettilna naċċessaw l-attribut tal-klassi.
Kull istanza ta 'klassi għandha l-istess karatteristiċi. Il-karatteristiċi tal-istanza jistgħu wkoll jiġu aċċessati bl-użu blaze.name u blaze.age. L-istanzi kollha ta' klassi għandhom attributi ta' istanza uniċi, għalkemm.
Eżempju 2
Metodi
Funzjonijiet definiti ġewwa korp ta 'klassi jissejħu metodi. Huma impjegati biex jispeċifikaw kif oġġett se jġib ruħu.
Żewġ metodi, sing () u żfin, huma definiti fl-applikazzjoni msemmija hawn fuq (). Minħabba li huma invokati fuq oġġett ta 'istanza, bħal fjamma, dawn jissejħu metodi ta' istanza.
Fundamenti tal-kunċett OOPS
L-erba 'ideat ewlenin tal-ipprogrammar orjentat lejn l-oġġetti huma:
- Wirt
- Inkapsulament
- Polimorfiżmu
- Estrazzjoni
Wirt
In-nies spiss jgħidu lit-trabi tat-twelid li għandhom karatteristiċi tal-wiċċ li jixbħu dawk tal-ġenituri tagħhom jew li wirtu karatteristiċi partikolari mill-ġenituri tagħhom.
Jista’ jkun li osservajt ukoll li taqsam ftit karatteristiċi mal-ġenituri tiegħek. Is-sitwazzjoni tad-dinja reali hija pjuttost simili għall-wirt ukoll.
Madankollu, f'dan il-każ, il-karatteristiċi tal-"klassijiet ġenituri" huma mgħoddija lill-"klassijiet tat-tfal." Dawn l-aspetti jissejħu "proprjetajiet" u "metodi" f'dan il-kuntest.
Klassi tista' tikseb il-metodi u l-attributi tagħha minn klassi oħra billi tuża t-teknika magħrufa bħala wirt. Il-wirt huwa l-proċess ta’ klassi tifel li tirċievi l-proprjetajiet ta’ klassi ġenitur.
Eżempju:
Il-klassi ġenitur tal-Bniedem tintiret mill-klassi tat-tfal Boy fl-eżempju ta 'hawn fuq. Minħabba li Boy qed jiret mill-Bniedem, nistgħu naċċessaw il-metodi u l-attributi kollha tiegħu meta noħolqu eżempju tal-klassi Boy.
Fil-klassi Boy, ġie definit ukoll metodu msejjaħ schoolName. L-oġġett tal-klassi ġenitur ma jistax jaċċessa l-metodu schoolName. Il-metodu schoolName jista', madankollu, jissejjaħ billi jinħoloq oġġett tal-klassi tat-tfal (Boy).
Inkapsulament
Li tagħti kull varjabbli fil-programm aċċess globali mhix mossa għaqlija meta taħdem ma 'klassijiet u timmaniġġja data sensittiva.
Mingħajr ma jagħti lill-programm aċċess sħiħ għal xi waħda minn dawk il-varjabbli, l-inkapsulament jipprovdi mekkaniżmu biex niksbu l-varjabbli meħtieġa.
Metodi li huma definiti b'mod espliċitu għall-iskop jistgħu jintużaw biex jaġġornaw, jeditjaw, jew iħassru data minn varjabbli. Dan il-metodu ta 'programmazzjoni għandu l-vantaġġi ta' sigurtà mtejba u kontroll fuq l-input tad-data.
Ara kemm il-varjabbli jistgħu jkunu aċċessibbli malajr fid-dimostrazzjoni hawn taħt:
Polimorfiżmu
Ejja ngħidu li qed tuża t-telefon tiegħek biex tfittex Għalf ta 'Instagram. Meta ħadt il-ħeġġa biex tisma 'xi mużika, int aċċessat Spotify u bdejt idoqq il-kanzunetta favorita tiegħek.
Wara xi żmien, irċevejt sejħa, u għalhekk waqqaft xi ħaġa li kont qed tagħmel fl-isfond biex twieġeb. Il-ħabib tiegħek ċempel u talab li inti tibgħatlu n-numru tat-telefon ta' ċertu persuna.
Allura inti bgħattlu n-numru tat-telefon permezz ta 'SMS u kompliet bil-kompiti tiegħek. Qbadt xi ħaġa? B'apparat wieħed biss—il-mowbajl tiegħek—tista' tisserfja permezz ta' feeds, tisma' l-mużika, tieħu u tagħmel telefonati, u messaġġi.
Għalhekk, il-polimorfiżmu huwa komparabbli ma 'dak. Poly tfisser numerużi, u morph tindika forom differenti. Għalhekk, il-polimorfiżmu kollu jirreferi għal xi ħaġa b'diversi forom.
Jew "xi ħaġa" li, skond iċ-ċirkustanza, tista 'tesibixxi varjetà ta' mġieba. Fl-OOPS, il-polimorfiżmu jiddeskrivi funzjonijiet bl-istess ismijiet iżda imgieba distinti. Inkella, firma ta' funzjoni differenti bl-istess isem tal-funzjoni (parametri mgħoddija lill-funzjoni).
Eżempju:
Hawnhekk, nistgħu nużaw l-annimal varjabbli biex itenni madwar l-oġġetti taż-Żebra u l-Fenek, bl-użu tal-metodi ta 'istanza rispettivi tagħhom. Bħala riżultat, l-imġieba (color() & eats()) kemm taż-Żebra kif ukoll tal-Fenek huma rappreżentati hawn minn varjabbli wieħed imsejjaħ annimal. Għalhekk qed iżomm mar-regoli tal-polimorfiżmu.
Estrazzjoni
X'aktarx tuża laptop, telefon jew tablet biex taqra dan il-kontenut. Waqt li taqraha, inti preżumibbilment qed tieħu noti, tissottolinja siltiet ewlenin, u forsi taħżen xi informazzjoni fil-fajls personali tiegħek.
Kulma tista 'tara meta taqra dan huwa "skrin" bid-data li qed tintwera lilek. Inti biss tara ċ-ċwievet tat-tastiera hekk kif ittajpja, sabiex ma jkollokx għalfejn tinkwieta dwar irqaq interni bħal kif l-imbuttar ta 'ċavetta jista' jikkawża li dik il-kelma tidher fuq l-iskrin.
Inkella, kif tagħfas buttuna fuq l-iskrin tiegħek tista 'tniedi tab ġdida.
Għalhekk, dak kollu li nistgħu nosservaw f'din is-sitwazzjoni huwa astratt. Nistgħu naraw biss ir-riżultat li qed joħloq u mhux l-intricacies ta 'ġewwa (li fil-fatt huma importanti għalina).
Simili għal dan, l-astrazzjoni tiżvela biss il-funzjonijiet li kollox jippossjedi filwaqt li taħbi kwalunkwe implimentazzjoni jew dettalji interni.
L-għan ewlieni tal-Astrazzjoni huwa li jaħbi informazzjoni ta' sfond u kwalunkwe implimentazzjoni ta' data estranji sabiex in-nies jaraw biss dak li għandhom bżonn jaraw. Jgħin fil-ġestjoni tal-kumplessità tal-kodiċi.
Eżempju:
Klassi astratta relatata mal-vettura hija preżenti hawnhekk. Minħabba li jiret mill-klassi astratta ABC, hija astratta. Minħabba li metodi astratti mhumiex definiti jew jibqgħu vojta, il-klassi Vettura għandha metodu astratt imsejjaħ no of wheels li m'għandux definizzjoni.
Huma jantiċipaw il-klassijiet li jirtu l-klassijiet astratti biex jagħtu l-implimentazzjoni tal-metodu.
Benefiċċji tal-kunċetti OOPS
- Bl-inkapsulazzjoni, jinkisbu sigurtà għolja u privatezza tad-dejta.
- Flessibilità li jkollok ħafna verżjonijiet polimorfiċi tal-istess klassi.
- Il-livell għoli ta 'kumplessità tal-kodiċi tnaqqas bl-astrazzjoni.
- Minflok ma tgħarbel mijiet ta 'linji ta' kodiċi biex issib problema waħda, il-modularità tal-ipprogrammar tagħmel id-debugging sempliċi.
- L-użu mill-ġdid tal-kodiċi huwa kkawżat mill-wirt ta' klassi tifel ta' proprjetajiet tal-klassi parent.
- Is-soluzzjoni effettiva tal-problemi hija possibbli għaliex noħolqu klassijiet li jagħmlu l-azzjonijiet meħtieġa għal kull mini-problema. Il-problema li ġejja tista 'tiġi solvuta saħansitra aktar malajr peress li nistgħu nużaw mill-ġdid dawk il-klassijiet.
konklużjoni
Bħala konklużjoni, tgħallimna dwar l-ideat OOPS f'Python, l-iktar paradigma ta 'programmazzjoni sħan bħalissa.
Wara li taqra dan, trid tkun induna li l-paradigma OOPS tittratta kompletament l-idea ta 'klassijiet u oġġetti. u kunċetti OOPS bħal inkapsulament, polimorfiżmu, wirt, u estrazzjoni.
Ħalli Irrispondi