A Byte of Python

Il metodo __init__

Ci sono molti metodi che hanno significati speciali nelle classi Python. Uno di questi è il metodo __init__.

Il metodo __init__ viene eseguito quando viene istanziata una classe. Si usa per inizializzare gli oggetti utilizzati nell'ambito della classe. Da notare il carattere di doppia sottolineatura posto prima e dopo il nome del metodo.

Usare il metodo __init__

Esempio 11.3. Usare il metodo __init__

				
#!/usr/bin/python
# Filename: class_init.py

class Person:
	def __init__(self, name):
		self.name = name
	def sayHi(self):
		print 'Hello, my name is', self.name

p = Person('Swaroop')
p.sayHi()

# Questo breve esempio potrebbe anche essere
# scritto come Person('Swaroop').sayHi()
				
				

Output

				
$ python class_init.py
Hello, my name is Swaroop
				
				

Funzionamento

Nell'esempio definiamo il metodo __init__ in modo tale che possa accettare il parametro name (oltre, ovviamente, al solito self). Creiamo un nuovo campo, anch'esso chiamato name; non c'è confusione nell'uso di due variabili diverse che hanno lo stesso nome: la notazione puntata aiuta a distinguerle.

È fondamentale notare come non ci sia nessuna chiamata esplicita al metodo __init__: il passaggio degli argomenti in parentesi seguiti dal nome della classe avviene al momento della creazione dell' istanza della classe.

Siamo adesso in grado di usare il campo self.name nei nostri metodi, come dimostrato nell'uso del metodo sayHi.

Nota per i programmatori di C++ / Java / C#

Il metodo __init__ è analogo al costruttore di C++, C# oppure Java.