0Pricing
Python Academy · Lezione

Classi e metodo __init__

Definisca classi, crei oggetti e inizializzi gli attributi.

Classi e metodo __init__ è una lezione Python Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Python Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Python Academy include 4 lezioni in totale.

Definizione di una classe

Utilizzi la parola chiave class per definire una classe. Per convenzione, i nomi delle classi utilizzano la notazione CapWords.

class Dog:
    pass

fido = Dog()
print(type(fido))  # <class '__main__.Dog'>

Il metodo __init__

__init__ viene chiamato automaticamente quando viene creato un oggetto. Lo utilizzi per configurare gli attributi di istanza.

class Dog:
    def __init__(self, name, breed):
        self.name = name
        self.breed = breed

fido = Dog("Fido", "Labrador")
print(fido.name)   # Fido

Spiegazione di self

self fa riferimento all'istanza corrente. Deve essere il primo parametro di ogni metodo di istanza. Python lo passa automaticamente.

class Counter:
    def __init__(self):
        self.count = 0

    def increment(self):
        self.count += 1

c = Counter()
c.increment()
print(c.count)  # 1

Più istanze

Ogni istanza possiede una propria copia degli attributi di istanza impostati in __init__.

class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

p1 = Point(1, 2)
p2 = Point(5, 7)
print(p1.x, p2.x)  # 1 5

Valori predefiniti dei parametri in __init__

Assegni valori predefiniti ai parametri di __init__ per rendere alcuni argomenti facoltativi.

class Circle:
    def __init__(self, radius=1.0):
        self.radius = radius

c1 = Circle()
c2 = Circle(5)
print(c1.radius, c2.radius)  # 1.0 5

Metodi di istanza

I metodi definiti all'interno di una classe operano sull'istanza tramite self.

class Rectangle:
    def __init__(self, w, h):
        self.w = w
        self.h = h

    def area(self):
        return self.w * self.h

r = Rectangle(4, 5)
print(r.area())  # 20

Aggiunta di attributi dopo la creazione

Può aggiungere attributi a un'istanza dopo la sua creazione, ma è più ordinato dichiararli tutti in __init__.

class Person:
    def __init__(self, name):
        self.name = name

p = Person("Alice")
p.age = 30      # added after creation
print(p.name, p.age)

Valore restituito da __init__

__init__ deve restituire None. La restituzione di qualsiasi altro valore genera un TypeError.

class Broken:
    def __init__(self):
        return 42   # TypeError!

# Correct
class OK:
    def __init__(self):
        self.value = 42
        # implicit return None

Verifica del tipo di istanza

Utilizzi isinstance() per verificare se un oggetto è un'istanza di una classe.

class Animal:
    pass

class Dog(Animal):
    pass

d = Dog()
print(isinstance(d, Dog))     # True
print(isinstance(d, Animal))  # True

Attributo __dict__

Ogni istanza memorizza i propri attributi in un dizionario __dict__.

class Book:
    def __init__(self, title, pages):
        self.title = title
        self.pages = pages

b = Book("Python 101", 300)
print(b.__dict__)  # {'title': 'Python 101', 'pages': 300}

Eliminazione degli attributi

Utilizzi del per rimuovere un attributo da un'istanza durante l'esecuzione.

class Config:
    def __init__(self):
        self.debug = True
        self.version = "1.0"

cfg = Config()
del cfg.debug
print(hasattr(cfg, "debug"))  # False

Controllo rapido

Qual è lo scopo di self nei metodi delle classi Python?

Ripasso

Le classi sono modelli per gli oggetti. __init__ inizializza gli attributi di istanza, self fa riferimento all'oggetto corrente e ogni istanza mantiene il proprio dizionario degli attributi.

Domande Frequenti

La lezione «Classi e metodo __init__» è gratuita?

Sì — il testo completo di «Classi e metodo __init__» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Python Academy, passa a CoddyKit PRO. Il corso Python Academy include 4 lezioni in totale.

Cosa imparerò in «Classi e metodo __init__»?

Definisca classi, crei oggetti e inizializzi gli attributi. Eserciti Python Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Python Academy?

Non è richiesta alcuna esperienza precedente. Python Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Classi e metodo __init__»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Python Academy?

Sì. Ogni lezione Python Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Classi e metodo __init__
  2. Attributi di istanza e di classe
  3. Metodi di istanza e self
  4. Metodi magici: __str__ e __repr__
← Torna a Python Academy