Menu
Coddy logo textTech

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 familiaris

Questo 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 familiaris

Differenza 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.

challenge icon

Sfida

Facile

Completa 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 classe Student.
  • driver.py: file di esecuzione principale che importerà e userà la tua classe Student:

    Completa il codice per creare una classe Student e 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}")
quiz iconMettiti alla prova

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

Esercitati da solo: Compilatore Python online