Ben tornato.
Quello che non ti ho detto è che quando impari di nuovo sulla programmazione orientata agli oggetti
e non solo in Python ma in qualsiasi linguaggio di programmazione che supporta il paradigma OLP, è questa idea di quattro pilastri di
tutte e quattro le cose che la programmazione orientata agli oggetti fa davvero, davvero bene.
E in effetti, abbiamo effettivamente imparato il primo, e questa è l'idea di incapsulamento.
Che cos'è l'incapsulamento?
L'incapsulamento è l'inizio dei dati e delle funzioni che manipolano quei dati e li incapsulamo in un
unico grande oggetto in modo da conservare tutto in questa scatola con cui gli utenti, il codice o altre macchine possono interagire.
E questi dati e funzioni sono ciò che chiamiamo attributi e metodi.
Destra.
Siamo in grado di incapsulare la funzionalità del nostro personaggio del giocatore avendo un nome e dati o
attributi di età e abbiamo anche funzioni che possono agire su questo nome ed età.
Quindi, per esempio, posso avere un metodo.
Qui dentro c'è scritto gridare.
O parlare.
E questo metodo parla ora può usare il nome e l'età, posso dire.
Il mio nome è Self Dodd nome.
E io sono.
Autodidatta, otto anni.
In modo che se faccio il giocatore un punto parli.
E io gestisco questo.
Mi chiamo Andrea e ho 100 anni.
Sto incapsulando la funzionalità, se non avessi questa classe, avrei, beh, alcune variabili e poi
due funzioni.
Ma usando l'incapsulamento, l'ho impacchettato in un progetto che posso creare più oggetti in
modo che quando altre persone vedono il mio codice, sanno, ehi, questo è un intero oggetto con cui posso interagire.
Posso usare in certi modi.
Quel personaggio del giocatore descrive e lo abbiamo visto anche nei nostri tipi di dati Python incorporati, giusto.
Quando creo una stringa.
In questo modo, a causa dell'incapsulamento, ho tutte queste funzionalità a mia disposizione, tutti questi metodi a cui posso accedere
in modo che se lo faccio, diciamo capitalizzare, capitalizzerà tutti i miei punti di forza.
Ho tutte queste funzionalità incapsulate per me da usare.
Ora, perché vogliamo impacchettare dati e funzioni in attributi e metodi?
Bene, perché questo ci dà potere extra, giusto?
Se, ad esempio, questo personaggio del giocatore non ha azioni, metodi e ha solo attributi.
Beh, in tal caso, questo è un po' come un dizionario, giusto?
È inutile se stampo il player uno qui e faccio clic su Esegui.
Ho questo oggetto giocatore, ma posso accedere a un nome come questo.
E posso anche accedere all'età.
Come questo.
Ma non posso davvero farci niente.
Potrei avere lo stesso dizionario qui, diciamo che il giocatore che eguaglierà un dizionario
che ha il nome di Andre e quindi ha cento anni.
E l'unica vera differenza tra i due è il modo in cui accedo a queste informazioni invece
della notazione a punti, uso la notazione tra parentesi per accedere alle chiavi.
In modo che quando clicco su Esegui.
Oh.
Devo assicurarmi di farlo anche qui per un giocatore, se clicco su Esegui.
Di nuovo, è la stessa cosa.
Certo, posso farlo in questo modo, ma è in qualche modo inutile, perché non creare semplicemente
un dizionario se tutto ciò che voglio sono i dati, ma usando in questo modo, sto combinando cose, impacchettando le cose in quelle
istanze, in quelle scatole che possono essere utili e anche cose che hanno un significato.
Giusto, perché il nostro mondo è pieno di dati e azioni.
Destra.
Anche un albero, ad esempio, se avessimo una classe di alberi nel nostro mondo reale, l'albero avrebbe forse
se fosse un sempreverde o una perenne, avrà se ha un contratto di locazione o lo fa, quanto è alto.
Avremo tutte queste informazioni, ma anche azioni.
Destra.
Posso abbattere un albero, l'albero può crescere, l'albero può estendere le sue radici.
Quindi in questo modo siamo in grado di imitare ciò che accade nel mondo reale con il nostro cappotto.
Quindi questo è l'incapsulamento e l'abbiamo visto.
Ma parliamo del nostro secondo pilastro e del prossimo video.