class Persona: nome = None cognome = None eta = 0 def __init__(self, nome, cognome, eta): self.nome = nome self.cognome = cognome self.eta = eta def __str__(self): return self.nome + " " + self.cognome + " " + self.eta def compleanno(self): self.eta++ a = Persona("Mario", "Rossi", 29) print(a)
componenti: nome, cognome, eta
metodi:
class Persona: nome = None cognome = None eta = 0 a = Persona() a.nome = "Mario" a.cognome = "Rossi" a.eta = 29 print(a)
si crea l'oggetto persona con a = Persona()
come a = new Persona(); in Java
contiene a.nome, a.cognome, a.eta
come in Java
class Persona: nome = None cognome = None eta = 0 a = Persona() a.nome = "Mario" a.cognome = "Rossi" a.eta = 29 print(a)
viene stampato:
<__main__.Persona object at 0x7f23fb11b890>
class Persona: nome = None cognome = None eta = 0 a = Persona() a.nome = "Mario" a.cognome = "Rossi" a.eta = 29 print(a)
l'istruzione print(a) fa due cose:
class Persona: nome = None cognome = None eta = 0 def __str__(self): return self.nome + " " + self.cognome + " " + str(self.eta) a = Persona() a.nome = "Mario" a.cognome = "Rossi" a.eta = 29 print(a)
ridefinisce __str__
stampa(a) chiama il metodo ridefinito
risultato della stampa:
Mario Rossi 29
class Persona: nome = None cognome = None eta = 0 def __str__(self): return self.nome + " " + self.cognome + " " + str(self.eta) a = Persona() a.nome = "Mario" a.cognome = "Rossi" a.eta = 29 print(a)
tutti i metodi, incluso __str__:
analogo a this in Java
ma va messo come primo argomento del metodo
class Persona: nome = None cognome = None eta = 0 def __init__(self, nome, cognome, eta): self.nome = nome self.cognome = cognome self.eta = eta def __str__(self): return self.nome + " " + self.cognome + " " + str(self.eta) a = Persona("Mario", "Rossi", 29) print(a)
analogo a Persona(String nome, String cognome, int eta) in Java
permette di inizializzare l'oggetto quando viene creato
a = Persona("Mario", "Rossi", 29)
primo argomento self:
class Persona: nome = None cognome = None eta = 0 def __init__(self, nome, cognome, eta): self.nome = nome self.cognome = cognome self.eta = eta def __str__(self): return self.nome + " " + self.cognome + " " + str(self.eta) def compleanno(self): self.eta += 1 a = Persona("Mario", "Rossi", 29) print(a) a.compleanno() print(a)
come per tutti i metodi, il primo argomento è self: