Guida programmazione orientata agli oggetti » Torna alla lezione

Esempio di incapsulamento [Python]

Il linguaggio Python, contrariamente alla stragrande maggioranza dei linguaggi di programmazione Object Oriented, non prevede alcuna restrizione sulla visibilità dei metodi e delle proprietà definiti in una classe. Chiunque voglia conoscere l'implementazione di un oggetto potrà essere in grado di farlo. Solitamente, viene utilizzata una sorta di nomenclatura particolare per dichiarare le variabili che si intende nascondere. Es:

>>> class XX:
...	def __init__(self):
...		self.__x=0
...
>>> z=XX()
>>> dir(z)
 ['_XX__x']

L'attributo __X nella classe XX viene rinominato in _XX__x. Ciò non vieterà l'accesso a tale attributo ma servirà per fare intendere che andrà usato in modo non casuale.

Da questo punto di vista l'approccio del Python, può risultare apparentemente più veloce e semplice ma certamente si perdono tutti i benefici dell'incapsulamento, descritti in questa lezione.