PYTHON Tutorial Italiano 19 - Ereditarietà

  Рет қаралды 18,692

Edoardo Midali

Edoardo Midali

Күн бұрын

Diciannovesimo episodio del corso di Python. Oggi continuiamo la programmazione ad oggetti parlando dell'ereditarietà. In sostanza è come classi derivanti da altre classi ereditano proprietà e metodi. Giusto uno dei pilastri della programmazione ad oggetti.
📂 ► Il mio corso python completo
codegrind.it/c...
🌐 ►Ti serve un hosting per mettere online il tuo sito?
bit.ly/3ViVqhm
💻 ►Documentazione della lezione + esercizi
codegrind.it/d...
codegrind.it/e...
📚 ► Consigli per libri e postazione da lavoro:
amzn.to/3g0gSXZ
💰 ► Sostieni il canale con una donazione:
bit.ly/3CIHBjR
bit.ly/3EurJnh
💬 ►Social e Community
Gruppo Telegram: bit.ly/3MnRZ4X
Canale Telegram: bit.ly/3Vhrn9C
Discord: bit.ly/3rOR97L
Linkedin: bit.ly/3ExG7Lv
0:00 Intro
0:09 Cos'è l'ereditarietà
1:58 Creare una classe figlia
3:53 Costruttore della classe figlia
5:31 Super()
7:10 Proprietà esclusive della classe figlia
9:22 Metodi ed Overriding
12:02 Consigli e Outro

Пікірлер: 31
@lucaamato6857
@lucaamato6857 10 ай бұрын
Complimenti per le spiegazioni; credo sia la miglior introduzione possibile alla programmazione ad oggetti: classi, istanze, ereditarietà spiegate in maniera chiara e comprensibile. Bravissimo Edoardo!
@ariannac6172
@ariannac6172 11 ай бұрын
Finalmente ci capisco qualcosa! grazie, sei davvero bravissimo a spiegare! :)
@davidefire9775
@davidefire9775 2 жыл бұрын
Grazie mille, finalmente sono riuscito a capire la programmazione ad oggetti
@alexsassi
@alexsassi 2 жыл бұрын
Ciao, quado faccio il def dell'init dell'insegnate mi propone in automatico solo def __init__(self): e non i campi ereditati. Va inserito qualche flag su PyCharm per il code completion? Lo stesso mi capita quando vado a definire insegnante1, per Insegnate non mi propone i parametri di nome e cognome.
@giuseppedegiosa1664
@giuseppedegiosa1664 5 ай бұрын
Spiegazione chiara e professionale. Grazie! Cosa devo impostare in Visual Studio Code affinchè durante la digitazione, per esempio nella creazione dell'oggetto "insegnante1", vengano automaticamente scritti i parametri e contestualmente evidenziati i riferimenti nel costruttore della classe "madre" (rif. video 3:12). Grazie
@Amos_tao
@Amos_tao 2 жыл бұрын
Ciao a tutti, ho un piccolissimo problema, sia in questo modulo che nel precedente quando scrivo : self.nome = nome mi esce in azzurino chiaro tutta la scritta e non blu (self). poi mi da errore "is not defined" . io ho la versione 3.10 di Python potrebbe essere questo? grazie
@albemoro6566
@albemoro6566 Жыл бұрын
anche a me succede, hai capito perchè?
@manu_1004
@manu_1004 3 жыл бұрын
Bravissimo Edoardo, grazie a te mi sto approcciando al mondo della programmazione, perché non fai dei video su java e angular?
@EdoardoMidali
@EdoardoMidali 3 жыл бұрын
piano piano arriva tutto
@VALENTINAPASQUALINO
@VALENTINAPASQUALINO Жыл бұрын
Ciao Edoardo, avrei una domanda pratica su come applicare il polimorfismo. Vorrei che il mio oggetto di tipo Insegnante salutasse momentaneamente come Persona. In C++ lo farei con questa sintassi: insegnante1.Persona::saluta() //(insegnante1 è un oggetto di tipo Insegnante e la classe Insegnante eredita da Persona, in entrambi è definito lo stesso metodo saluta() che da un print diverso come output). In pratica vorrei oltrepassare l'override del metodo saluta(). C'è un modo per farlo anche in Python? Grazie
@leovoskanyan5163
@leovoskanyan5163 3 жыл бұрын
Ciao bel video. Avevo una domanda che non riguarda questo video. Io sono andato a vedere alcuni video e quando metto: " import pygame " mi da nel terminal che non esiste il modulo pygame(anche se lo ho installato) pk? Come risolvo?
@manuelbenha2860
@manuelbenha2860 3 жыл бұрын
ma l'hai installato direttamente dal terminale pygame?
@leovoskanyan5163
@leovoskanyan5163 3 жыл бұрын
@@manuelbenha2860 no grazie non serve più, ho risolto
@presenzadigesu3615
@presenzadigesu3615 2 жыл бұрын
Ciao , credi che qualcosa sia cambiato, la funzione self non funziona piu' o magari sbaglio qualcosa io. Grazie a priori per il corso
@EdoardoMidali
@EdoardoMidali 2 жыл бұрын
sempre tutto uguale, fai più di un controllo che basta un niente per avere errori.
@MrPianist97
@MrPianist97 3 жыл бұрын
Ciao Edoardo, ti ringrazio per tutti i video che stai pubblicando! Volevo chiederti come faccio a far salutare, ad esempio, Anna Neri prima come insegnante e poi come persona. Nel senso che visto che un'insegnante è allo stesso tempo una persona, come posso richiamare un'istanza persona con gli stessi campi (nome e cognome in questo caso) di un'istanza insegnante, senza dover scrivere io il codice a mano? (ad esempio persona1=Persona("Anna", "Neri")
@EdoardoMidali
@EdoardoMidali 3 жыл бұрын
questo codice persona1=Persona("Anna", "Neri") non vuol dire richiamare un'istanza ma crearla. Per richiamarla devi solo usarle persona1. Comunque il codice per le istanze lo devi scrivere tu non viene generato dal nulla.
@catcaturday2384
@catcaturday2384 3 жыл бұрын
Basico e comprensibile
@26GABRI
@26GABRI 11 ай бұрын
SE nel costruttore Insegnante metto Persona mi da errore , se metto super va tutto bene. Qualcuno sa dirmi perchè? Grazie
@mattiaspada7091
@mattiaspada7091 2 жыл бұрын
Puoi fare un video dedicato alla spiegazione del Polimorfismo nell'ereditarietà?
@er_minestrina
@er_minestrina Жыл бұрын
Buongiorno, non capisco perche mi da errore.. class Giocatore: def __init__(self, nome, cognome): self.nome = nome self.cognome = cognome def saluta(self): print("ciao sono " + self.nome) gio1 = Giocatore("Mario", "Rossi") TypeError: Giocatore.__init__() takes 2 positional arguments but 3 were given qualcuno sa perche?
@sergiopalazzi6033
@sergiopalazzi6033 3 жыл бұрын
Ho creato un esempio con le classi Persona, Insegnante e Allievo (queste due "figlie" di Persona). Come posso mettere nella classe Insegnante un riferimento alla classe Allievo? In pratica, come fare in modo che venga scritto , prendendo il nome di Allievo dalla sua classe? Grazie, Sergio
@EdoardoMidali
@EdoardoMidali 3 жыл бұрын
fai un metodo salutaAllievo e come parametro ci passi un oggetto Allievo. Dovresti nel print poi essere in grado di prendere allievo.nome
@sergiopalazzi6033
@sergiopalazzi6033 3 жыл бұрын
@@EdoardoMidali ci provo subito e ti aggiorno. Grazie
@sergiopalazzi6033
@sergiopalazzi6033 3 жыл бұрын
class Persona: def __init__(self, nome, cognome): self.nome = nome self.cognome = cognome def saluta(self): print("Ciao sono "+ self.nome + " " +self.cognome) class Insegnante(Persona): def __init__(self, nome, cognome, materia): super().__init__(nome,cognome) self.materia = materia def saluta(self): print("Buongiorno sono l'insegnate di "+ self.materia +" "+ self.nome +" "+ self.cognome ) def dai_voto(self): print("Complimenti, ti meriti un 8") # def salutaAllievo(self): # self.allievo = Allievo class Allievo(Persona): def __init__(self, nome, cognome, classe): super().__init__(nome, cognome) self.classe = classe self.allievo = Allievo # def salutaAllievo(self): # self.allievo = Allievo def saluta(self): print("Io sono "+ self.nome +" "+ self.cognome+" "+"della classe "+self.classe) Forse non ho capito il tuo suggerimento ma in entrambi i modi non mi funziona .....
@sergiopalazzi6033
@sergiopalazzi6033 3 жыл бұрын
@@EdoardoMidali Ciao, non ne vengo fuori: HELP !!
@sergiopalazzi6033
@sergiopalazzi6033 3 жыл бұрын
@@EdoardoMidali se nella classe insegnante inserisco il metodo con oggetto Allievo, mi appare Allievo.nome , funziona ma mi riporta il nome dell'insegnate e NON quello dell'Allievo. class Insegnante(Persona): def __init__(self, nome, cognome, materia): super().__init__(nome,cognome) self.materia = materia def saluta(self): print("Buongiorno sono l'insegnate di "+ self.materia +" "+ self.nome +" "+ self.cognome ) def dai_voto(Allievo): print(Alunno.nome +" complimenti ti meriti un otto") insegnante1.dai_voto() Hai suggerimenti in merito? Grazie mille in anticipo
@mg-koda
@mg-koda 3 жыл бұрын
Ciao Edoardo, contunuo a ringraziarti per il lavoro che stai facendo. Avrei una domanda: scrivendo il codice (su jupyter notebook) non riesco a far rilevare il comandio self, cosa sbaglio? class Persona: def _init_(self, nome, cognome): self.nome = nome self.cognome = cognome def saluta(self): print("ciao sono " + self.nome) class Insegnante(Persona): pass person1 = Persona("Luca", "Rossi") insegnante1 = Insegnante("Anna", "Neri") EDIT: avevo indentato male il secondo def, risolto :)
@EdoardoMidali
@EdoardoMidali 3 жыл бұрын
Ottimo, python è canaglia con l'indentazione. Scusa la tardiva risposta
@mg-koda
@mg-koda 3 жыл бұрын
@@EdoardoMidali Figurati, grazie comunque. Sono impazzito cercando di capire quale fosse il problema, che ai miei occhi era identico al tuo!
@rodolfolavandino4029
@rodolfolavandino4029 3 жыл бұрын
Ciao Edoardo, domanda: se volessimo ereditare tutti gli attributi di una classe madre, basterebbe il PASS giusto?
PYTHON Tutorial Italiano 20 - Lo SCOPE delle variabili
8:37
Edoardo Midali
Рет қаралды 11 М.
Арыстанның айқасы, Тәуіржанның шайқасы!
25:51
QosLike / ҚосЛайк / Косылайық
Рет қаралды 700 М.
PYTHON Tutorial Italiano 18 - Classi e Oggetti
14:58
Edoardo Midali
Рет қаралды 35 М.
Python inheritance 👪
7:19
Bro Code
Рет қаралды 92 М.
7 Design Patterns EVERY Developer Should Know
23:09
ForrestKnight
Рет қаралды 330 М.
Corso Python da PRINCIPIANTE ad ESPERTO in 7 ore (python mysql incluso)
6:53:32
How I Would Learn Sports Analytics (If I Could Start Over)
10:06
McKay Johns
Рет қаралды 50 М.
PYTHON Tutorial Italiano 26 - TRY e EXCEPT
10:35
Edoardo Midali
Рет қаралды 10 М.
PYTHON Tutorial Italiano 13 - LIST
26:15
Edoardo Midali
Рет қаралды 30 М.