La programmazione orientata agli oggetti ci consente di creare oggetti che hanno i propri metodi come run.
E attributi.
Proprietà.
È un ottimo modo per aggiungere più funzionalità a un linguaggio e imitare il mondo reale, ad esempio, usiamo l'idea
di lavorare per un'azienda di giochi.
Sebbene Python ci abbia fornito solo alcuni tipi di dati, sono stato in grado di creare un personaggio del giocatore.
E ora il mio capo è felice perché questo personaggio può essere utilizzato in tutto il gioco.
E tutto ciò che gli altri programmatori devono fare è eseguire questa riga con il nome personalizzato e l'età del personaggio.
Quindi OP ci consente di scrivere codice ripetibile, ben organizzato e anche efficiente in termini di memoria.
Giusto, perché lo scriviamo solo una volta.
Quindi, se vuoi essere un grande sviluppatore, OP è qualcosa che devi sapere e devi
capire perché, beh, è così che vuoi organizzare il tuo codice, pensando in modo meno
procedurale e pensando di più in termini di funzionalità, raggruppando i dati come attributi, insieme ai metodi per creare questa
classe che è in grado di imitare qualcosa dal mondo reale.
Ora, voglio mostrarti uno strumento utile qui.
Abbiamo visto che quando eseguo il player Dot, il mio editor mi mostra ciò che ho a disposizione, le proprietà, così come
queste caselle viola, che sono i metodi che ho a disposizione.
E subito, vedi che ho un nome e scappo, ma poi ho tutti questi altri che
ho di default.
Ora, questi sono tutti metodi Dundar o magici di cui parleremo.
Ma la chiave qui è che se faccio qualcosa come aiuto, che è una nuova funzione che potresti
non aver mai visto prima, commentiamo questo.
Se clicco, corro.
In realtà ottengo, beh, l'intero progetto dell'oggetto.
Se faccio qualcosa come una lista.
E clicco su Esegui.
Di nuovo, mostra il progetto che ha e questo è un ottimo modo per vedere quale progetto di classe hanno alcuni dei
tipi di dati Python.
Ora, questo è qualcosa che rivedremo in seguito.
Ma ora voglio tornare a questo personaggio del giocatore qui, abbiamo visto che siamo in grado di creare attributi e
gli attributi sono pezzi di dati che sono dinamici.
Cioè, quando istanziamo un oggetto, saranno univoci per quell'oggetto specifico come nome ed
età.
E abbiamo dovuto usare questa stessa parola chiave per assicurarci che fosse dinamico.
Tuttavia, c'è un'altra cosa chiamata attributo dell'oggetto classe, e potrebbe assomigliare a questo, diciamo che avevamo il personaggio del
giocatore e loro dovevano, diciamo, essere un membro pagante per giocare a questo gioco.
Devi aver giocato o devi aver ottenuto un abbonamento.
Quindi abbiamo un abbonamento uguale.
Vero.
Attributo ora, a differenza di questo, vedi che è sulla stessa riga dei nostri metodi e questo
è chiamato oggetto di classe.
In realtà.
E un attributo di un oggetto di classe, a differenza di questi normali attributi di classe, è diverso perché,
beh, non è dinamico, è statico.
Quindi se clicco.
Esegui qui e vogliamo assicurarci di stampare qualcosa, quindi stampiamo player su.
E clicco su Esegui.
Bene, ho il giocatore, è fantastico, ma se faccio l'abbonamento puntino.
E clicco su Esegui.
Guarda un po', ottengo lo stesso da masticare se faccio il giocatore uno qui.
Inoltre, e clicco su Esegui.
Ottengo che tutti i giocatori abbiano l'appartenenza impostata su true, ma questo non è dinamico.
È un attributo dell'oggetto di classe, il che significa che è un attributo effettivo su questa classe.
E questo è qualcosa che usiamo quando non c'è cambiamento.
Questo sarà vero ed esisterà per tutti gli oggetti, quindi non puoi davvero modificarlo, solo tutti gli oggetti che
istanziamo avranno accesso ad esso.
Quindi questo non cambia tra le istanze e possiamo usarlo anche qui o ovunque in questo progetto di
classe, in effetti.
Ad esempio, supponiamo di voler verificare se.
L'iscrizione esiste, quindi stiamo verificando se l'iscrizione è vera.
Che voglio dire, lo è sempre.
Quindi questo è un po' ridondante, ma qui dentro.
Posso dire solo se l'iscrizione è vera, quindi assegnerò un nome e un'età, ma per poter accedere all'iscrizione, dovrò fare
l'iscrizione a me stesso Dorte perché ricorda, Self si riferisce a questo personaggio del giocatore in
modo che se eseguo questo.
Tutto funziona ancora, e se faccio il nome del punto del giocatore.
Funziona ancora, o posso fare riferimento a questo dal personaggio del giocatore effettivo, quindi personaggio del giocatore, appartenenza.
Quindi se clicco corri qui.
Funziona anche perché è un attributo dell'oggetto di classe.
Se dovessi forse correre, cambiamo questo in gridare e gridare, vorrà correre.
Rimuoviamo questa riga.
Sta per stampare.
Una stringa F che dice che il mio nome è.
E dagli un nome, pensi che funzionerà, proviamo, diciamo gridare.
E assicurati di eseguire quel metodo e quindi fare di nuovo clic su grida.
Se clicco, corro.
Ricevo un nome aereo non definito online, 11, se vado alla riga undici qui.
Il nome non è definito.
Perché?
Bene, perché non abbiamo usato self.
Quindi facciamo il nome con il punto stesso.
E se clicco su Esegui.
Ecco qua.
Il mio nome è Tom.
Mi chiamo Cindy.
OK, fantastico, e sono in grado di te stesso, perché lo passo qui come primo parametro e tutti i metodi
ricevono il primo parametro, un sé in modo che possiamo usarli.
Ma potrei semplicemente fare un giocatore, un personaggio, un nome di dominio se clicco su Esegui?
Ottengo un gioco d'aria, un personaggio non ha un nome di attributo.
Ora, perché è così?
Perché il nome non è un attributo dell'oggetto di classe.
In realtà non è una proprietà o un attributo del personaggio del giocatore.
No, è definito nella nostra funzione di costruzione sono init function.
Quindi questo è un po 'un pasticcio qui e qualcosa che dovrai abituarti a un attributo dell'oggetto di classe
è qualcosa che non cambia tra istanze diverse rispetto a un attributo o un attributo di classe è
qualcosa che è dinamico e specifico per ogni classe oggetto.
Il modo in cui accediamo a loro è diverso, in cui possiamo effettivamente accedere all'appartenenza in questo modo, ma per
poter accedere a un nome o a un'età ovunque all'interno della nostra classe, dobbiamo usare il nome selfie, motivo per cui
ogni volta che creiamo un metodo in una classe, anche se ne creo uno nuovo qui e
diciamo che questo nuovo verrà eseguito.
Bene, ancora una volta, devo usare me stesso come parametro e poi qualsiasi altra cosa che voglio aggiungere.
E qui.
Come secondo parametro, in modo che quando clicco, diciamo esegui.
passo in.
Ciao, argomento come questo.
So che è molto, ma spero che inizi a seguire le regole delle classi una volta che ricordi
queste regole, allora diventa sempre più facile.
Ma ci eserciteremo un po' di più nel prossimo video.