Table di cuntinutu[Piattà][Mostra]
Trà i sviluppatori, a prugrammazione orientata à l'ughjettu hà attiratu un seguitu considerableu. A lingua di computer populari Python aderisce ancu à u paradigma orientatu à l'ughjettu.
Si tratta di definisce l'uggetti è e classi in Python, chì forma a basa per i principii OOP. In questu tutoriale nantu à a "programmazione orientata à l'ughjettu in Python", amparate cumu dichjarà e classi Python, creà oggetti da elli, è aduprà e quattru tecniche OOP.
Allora, prima cosa prima.
Cosa hè a prugrammazione orientata à l'ughjettu?
U focu principalu di a prugrammazione orientata à l'ughjettu (OOP) hè a creazione di "oggetti". Una cullizzioni di variàbili è funzioni interconnessi custituiscenu un oggettu.
Sti variàbili sò spessu riferiti cum'è attributi di l'ughjettu, è i so cumpurtamenti sò spessu chjamati e so funzioni. Questi articuli furnisce l'applicazione cù una struttura più efficace è comprensibile. Un automobile hè un esempiu di un articulu.
Se l'automobile era un articulu, i so attributi includenu cose cum'è u so culore, mudellu, prezzu, marca, etc. Inoltre, accelerà, rallenta è cambia ingranaggi.
Un'altra illustrazione: Se pensemu à un cane cum'è un articulu, allora alcune di e so caratteristiche puderanu esse culore, razza, nome, pesu, etc.
Perchè incorpora cuncetti di u mondu reale cum'è l'uggetti, l'ocultazione, l'eredità, etc. in a prugrammazione, a prugrammazione orientata à l'ughjettu hè ben cunnisciuta. Perchè hè cusì simile à e circustanze di u mondu reale, a visualizazione hè simplificata.
Cuncepzioni di prugrammazione orientata à l'ughjettu
Classi è oggetti in Python
Cum'è tutte l'altri linguaggi orientati à l'ughjettu, Python vi permette di cuncepisce classi per generà oggetti. I tipi di dati più populari in Python, cumprese strings, listi, dizionari è altri oggetti, sò classi integrati.
Una classa hè un gruppu di metudi ligati è variabili d'istanza chì definiscenu un certu tipu d'ughjettu. Una classa pò esse vistu cum'è u mudellu o mudellu per un ughjettu. I variàbili chì custituiscenu una classa sò cunnisciuti com'è attributi.
Un ughjettu hè un membru di una classa chì hà un settore definitu di attributi. Per via di questu, ogni numeru d'uggetti pò esse creatu cù a listessa classa.
E classi di Python sò definite cù a parola classa, chì hè seguita da u nome di a classe è un colon. Un'illustrazione di una classe di pappagallo pò esse:
Quì, dichjaremu a classa viota Parrot usendu a keyword class. Creemu istanze da classi. Un esempiu hè un oggettu particulari chì hè statu fattu da una certa classa. "pass" hè spessu usatu cum'è un stand-in per u codice chì l'implementazione pudemu rinuncia per u mumentu. Pudemu eseguisce u codice Python senza suscitarà un errore usendu a chjave "pass".
Un'istanciazione di una classe risulta in un oggettu (istanza). Solu a descrizzione di l'ughjettu hè definita quandu una classa hè creata. In u risultatu, nisun almacenamentu o RAM hè attribuitu.
Un esempiu di un oggettu di classa pappagallo hè:
Obj hè un ughjettu Parrot-class in questu casu.
Diciamu chì sapemu specifichi nantu à i pappagalli. Avemu avà dimustratu cumu creà a classa pappagallo è i so oggetti.
Metudu Speciale ( __init__ )
Un metudu chjamatu init definisce l'attributi chì ogni ughjettu Parrot deve avè (). Quandu un novu ughjettu Parrot hè furmatu, a funzione __init__ crea u statu iniziale di l'ughjettu assignendu i valori chì furnimu in e proprietà di l'ughjettu.
Dunque, ogni nova istanza di a classa hè inizializzata usendu __init__(). Ancu se __init__() pò accettà ogni numeru di paràmetri, self hè sempre u primu paràmetru.
Una riferenza à l'istanza di a classa attiva hè inclusa in l'auto-argumentu. U paràmetru di l'autore, chì liga à l'indirizzu di l'ughjettu attuale di una classa è ci dà accessu à e so dati (di l'ughjettu) di variàbili, significa chì.
Frasi 1
Avemu stabilitu una classa chjamata Parrot in u codice sopra. Dopu, i pruprietà sò definite. E caratteristiche di una cosa sò e so proprietà. A funzione __init__ di a classa hè induve queste caratteristiche sò specificate.
Quandu un ughjettu hè furmatu, u metudu di inizializazione hè quellu chì hè chjamatu inizialmente. Allora, i casi di a classa Parrot sò creati. Blaze è Wonda in questu casu sò referenze (valori) à i nostri novi oggetti. __class .species ci permette di accede à l'attributu class.
Ogni istanza di una classe hà e stesse caratteristiche. E caratteristiche di l'istanza ponu ancu accede cù blaze.name è blaze.age. Tutte e istanze di una classa anu attributi d'istanza unichi, però.
Frasi 2
mètudi
E funzioni definite in u corpu di una classe sò chjamati metudi. Sò impiegati per specificà cumu si cumportarà un articulu.
Dui metudi, cantà () è ballu, sò definiti in l'applicazione sopra citata (). Perchè sò invucati nantu à un oggettu di istanza, cum'è flame, sò chjamati metudi di istanza.
Fundamenti di u cuncettu OOPS
I quattru idee core di prugrammazione orientata à l'ughjettu sò:
- làscita
- Incapsulamentu
- Polimorfisimu
- curriculum
làscita
E persone spessu dicenu à i neonati chì anu carattiristichi di a faccia chì s'assumiglia à quelli di i so genitori o chì anu ereditatu tratti particulari da i so genitori.
Hè pussibule chì avete ancu osservatu chì sparte uni pochi di caratteristiche cù i vostri parenti. A situazione di u mondu reale hè abbastanza simile à l'eredi.
Tuttavia, in questu casu, e caratteristiche di "classi parenti" sò trasmesse à e "classi di i zitelli". Questi aspetti sò chjamati "proprietà" è "metudi" in questu cuntestu.
Una classa pò derivà i so metudi è attributi da una altra classa utilizendu a tecnica chjamata eredità. L'eredità hè u prucessu di una classa figliola chì riceve e proprietà di una classa parent.
esempiu:
A classe parent Human hè ereditata da a classe di u zitellu Boy in l'esempiu sopra. Perchè u Boy eredita da l'Umanu, pudemu accede à tutti i so metudi è attributi quandu creamu un esempiu di a classe Boy.
In a classe Boy, un metudu chjamatu schoolName hè statu ancu definitu. L'ughjettu di a classa parent ùn pò micca accede à u metudu schoolName. U metudu schoolName pò, però, esse chjamatu creendu un oggettu di classa di u zitellu (Boy).
Incapsulamentu
Dà ogni variabile in l'accessu glubale di u prugramma ùn hè micca una mossa sàvia quandu travaglia cù classi è manighjà dati sensittivi.
Senza dà à u prugramma un accessu cumpletu à alcuna di queste variabili, l'encapsulazione furnisce un mecanismu per noi per ottene e variàbili necessarii.
I metudi chì sò definiti esplicitamente per u scopu ponu esse usatu per aghjurnà, edità o sguassate dati da variàbili. Stu metudu di prugrammazione hà i vantaghji di a sicurità rinfurzata è u cuntrollu di l'input di dati.
Vede quantu rapidamente e variabili ponu esse accessibili in a dimostrazione sottu:
Polimorfisimu
Dicemu chì site cù u vostru telefunu per navigà Feed di Instagram. Quandu avete avutu l'urgenza di sente un pocu di musica, avete accessu à Spotify è hà cuminciatu à ghjucà a vostra canzone preferita.
Dopu un tempu, avete ricevutu una chjama, cusì avete pausa tuttu ciò chì fate in u fondu per risponde. U vostru amicu hà chjamatu è hà dumandatu chì li scrivite u numeru di telefunu di una certa persona.
Cusì avete mandatu u numeru di telefunu per SMS è hà purtatu cù i vostri compiti. Avete pigliatu qualcosa ? Cù un solu dispositivu - u vostru telefuninu - pudete navigà attraversu i feed, ascultà a musica, piglià è fà telefonate, è missaghju.
Dunque, u polimorfismu hè paragunabile à questu. Poly significa numerosi, è morph denota forme diverse. Per quessa, u polimorfismu in tuttu si riferisce à qualcosa cù diverse forme.
O "qualcosa" chì, secondu a circustanza, pò esse mostra una varietà di cumpurtamenti. In OOPS, u polimorfismu descrive funzioni cù i stessi nomi ma cumpurtamenti distinti. In alternativa, una firma di funzione differente cù u listessu nome di funzione (parametri passati à a funzione).
esempiu:
Quì, pudemu usà l'animali variabile per iterate à traversu l'uggetti di a Zebra è di u Cunigliu, utilizendu i so metudi di istanza rispettivi. In u risultatu, u cumpurtamentu (culore () & eats ()) di a Zebra è di u Cunigliu sò rapprisentati quì da una sola variabile chjamata animale. Hè dunque aderisce à e regule di polimorfismu.
curriculum
Probabilmente utilizate un laptop, telefunu o tableta per leghje stu cuntenutu. Durante a lettura, avete presumibilmente ancu piglià note, sottulinendu i passaggi chjave, è forse almacenendu qualchì infurmazione in i vostri schedari persunali.
Tuttu ciò chì pudete vede quandu leghjite questu hè un "schermu" cù i dati chì vi vede. Basta vede i chjavi di u teclatu cum'è scrive, cusì ùn avete micca da preoccupari di suttilità interna cum'è cumu spinghje una chjave pò fà chì a parolla apparisce in u screnu.
In alternativa, cumu pressu un buttone nantu à u vostru schermu pò lancià una nova tabulazione.
Dunque, tuttu ciò chì pudemu osservà in questa situazione hè astrattu. Pudemu solu vede u risultatu chì crea è micca l'intricacies internu (chì in realtà importa per noi).
Simile à questu, l'astrazione revela solu e funzioni chì tuttu pussede mentre oculta ogni implementazione o dettagli interni.
L'ughjettu maiò di l'astrazione hè di ammuccià l'infurmazioni di fondo è qualsiasi implementazione di dati estranei per chì a ghjente vede solu ciò chì deve vede. Aiuta à gestisce a cumplessità di u codice.
esempiu:
Una classa astratta ligata à u veiculu hè presente quì. Perchè eredita da a classe astratta ABC, hè astratta. Perchè i metudi astratti ùn sò micca definiti o stà viotu, a classa Veiculu hà un metudu astrattu chjamatu no di roti chì manca una definizione.
Anticipanu e classi chì ereditanu e classi astratti per dà l'implementazione di u metudu.
Benefici di i cuncetti OOPS
- Per l'incapsulazione, l'alta sicurezza è a privacy di e dati sò ottenute.
- Flessibilità in avè parechje versioni polimorfe di a stessa classe.
- L'altu livellu di cumplessità di codice hè stata ridutta da l'astrazione.
- Invece di sferisce centinaie di linee di codice per localizà un solu prublema, a modularità di prugrammazione rende a debugging simplice.
- A riutilizazione di u codice hè causata da l'eredità di una classe figliola di e proprietà di classi parenti.
- A risoluzione di prublemi efficace hè pussibule perchè creamu classi chì facenu l'azzioni necessarii per ogni mini-prublema. U prublema seguente pò esse risoltu ancu più rapidamente postu chì pudemu reutilizà quelli classi.
cunchiusioni
In cunclusione, avemu amparatu l'idee OOPS in Python, u paradigma di prugrammazione più caldu avà.
Dopu avè lettu questu, duvete avè capitu chì u paradigma OOPS tratta interamente l'idea di classi è oggetti. è cuncetti OOPS cum'è incapsulazione, polimorfismu, eredità è astrazione.
Lascia un Audiolibro