[Python] Assegnamento e liste
Diego Barrera
diegonebarrera a yahoo.it
Mar 17 Gen 2012 15:47:04 CET
Ciao a tutti
Ho creato questa classe:
class Traduttore:
"""
La classe astratta 'Traduttore' definisce un oggetto di tipo
traduttore.
La classe rappresenta ogni oggetto in grado di leggere da qualsiasi
sorgente e scrivere in qualsiasi destinazione: DB, csv, xml, html...
Ogni sottoclasse deve avere un lettore e uno scrittore appropriato
alla sorgente e alla destinazione.
"""
def __init__(self,tipo):
if tipo=='fix_csv2csv':
self.lettore=Lettore_fix_csv()
self.scrittore=Scrittore_csv()
self.dati=self.scrittore.dati=self.lettore.dati
Sia la classe lettore che quella scrittore hanno una proprieta' *dati*
che non e' altro che una lista.
Da quello che sapevo, l'ultimo assegnamento dovrebbe far puntare
self.dati, self.lettore.dati, e self.scrittore.dati alla stessa lista...
invece piu' avanti utilizzo una cosa tipo
self.dati=self.dati[:-1]
da cui mi rendo conto che l'unica lista modificata e' self.dati
Perche'?
invece usando
del self.dati[-1:]
modifico tutte e tre!!
Chiaramente ho risolto, ma perche' si comporta cosi'?
Grazie mille
diego
Maggiori informazioni sulla lista
Python