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) # FidoSpiegazione 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) # 1Più 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 5Valori 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 5Metodi 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()) # 20Aggiunta 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 NoneVerifica 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)) # TrueAttributo __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")) # FalseControllo 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
- Classi e metodo __init__
- Attributi di istanza e di classe
- Metodi di istanza e self
- Metodi magici: __str__ e __repr__