Classi vs. oggetti
Fa parte della sezione Programmazione orientata agli oggetti del percorso Python di Coddy. Lezione 3 di 64.
Le classi e gli oggetti hanno scopi diversi. Una classe è un modello, mentre un oggetto è ciò che costruisci a partire da quel modello.
Ecco un esempio di classe:
class Dog:
# condiviso da tutti i cani
species = "Canis familiaris"Ora possiamo accedere direttamente all'attributo della classe usando Dog.species, dove Dog è il nome della classe:
print(f"Class species: {Dog.species}")
# species della classe: Canis familiarisQuesto accede ai dati della classe stessa, non a quelli di un oggetto specifico.
Ora esploriamo come funziona con gli oggetti. Crea oggetti dalla classe Dog:
dog1 = Dog()
dog2 = Dog()Gli oggetti possono avere attributi individuali che le classi non possono avere:
dog1.name = "Nicky"
dog1.breed = "Siberian Husky"
dog2.name = "Teemon"
dog2.breed = "Shu'ali"Confronta ciò che classi e oggetti possono fare:
print(f"Object 1: {dog1.name} is a {dog1.breed}")
print(f"Object 2: {dog2.name} is a {dog2.breed}")
print(f"Both share class attribute: {Dog.species}")Output:
Object 1: Nicky is a Siberian Husky
Object 2: Teemon is a Shu'ali
Both share class attribute: Canis familiarisDifferenza fondamentale: la classe Dog definisce ciò che tutti i cani hanno in comune, mentre gli oggetti dog1 e dog2 rappresentano cani specifici e distinti, con proprietà uniche.
Sfida
FacileCompleta il codice per creare una classe Student e due oggetti studente. Aggiungi nomi e voti diversi a ciascuno studente.
student.py: qui definirai la tua classeStudent.driver.py: file di esecuzione principale che importerà e userà la tua classe Student:Completa il codice per creare una classe
Studente due oggetti studente. Aggiungi nomi e voti diversi a ciascuno studente.Il nome di student1 è
"Alice"e il suo voto è"A".Il nome di student2 è
"Bob"e il suo voto è"B".
Provalo tu
# Importa la classe Student
from student import Student
# TODO: Crea due oggetti studente
# TODO: Aggiungi attributi a student1
# TODO: Aggiungi attributi a student2
# Stampa le informazioni sugli studenti
print(f"{student1.name} has grade {student1.grade} at {Student.school}")
print(f"{student2.name} has grade {student2.grade} at {Student.school}")Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Programmazione orientata agli oggetti
1Fondamenti di OOP
File esterniIntroduzione a OOPClassi vs. oggettiIl parametro selfMetodiAttributiMetodo costruttore (__init__)Riepilogo - Calcolatrice semplice4Ereditarietà
Ereditarietà di baseLa funzione super()Sovrascrittura dei metodiEreditarietà multiplaOrdine di risoluzione dei metodiRiepilogo - Gerarchia dei dipendenti7Metodi speciali
Introduzione ai metodi magiciSovraccarico degli operatoriMetodi magici dei contenitoriRiepilogo - Lista personalizzata10Modelli di progettazione Parte 1
Introduzione ai modelli di progettazioneModello SingletonModello FactoryModello ObserverModello Strategy2Decoratori
Introduzione ai decoratoriDecoratore di proprietàDecoratore di metodo staticoDecoratore di metodo di classe5Polimorfismo
Ripasso dell'override dei metodiDuck typingClassi e metodi astrattiProgettazione delle interfacceRiepilogo - Calcolatore di forme8Concetti avanzati di OOP
Composizione vs ereditarietàMixinMetodi statici e di classeDecorator di classeContext manager11Pattern di progettazione - Parte 2
Pattern dei comandiPattern adattatorePattern decoratorePattern metodo templatePattern statoPattern composito3Proprietà delle classi
Variabili di istanza e di classeDecorator delle proprietàAttributi privatiRiepilogo - Gestore di conti bancari6Incapsulamento
Membri pubblici, protetti e privatiModificatori di accessoOccultamento delle informazioniDecorator delle proprietà: avanzatiRipasso - Sistema di registri degli studenti12Progetto: Gestione della biblioteca
Panoramica del progettoClassi Libro e UtenteSistema di prestitoFunzionalità di ricercaInterfaccia amministratoreTest e integrazioneEsercitati da solo: Compilatore Python online