me creado una clase:¿La lista en una clase de Python comparte el mismo objeto en 2 instancias diferentes?
class A:
aList = []
ahora tengo función que instanciar esta clase y añadir elementos a la aList.
nota: hay 2 artículos
for item in items:
a = A();
a.aList.append(item);
me parece que la primera A y el segundo un objeto tiene el mismo número de elementos en su aList. Supongo que el primer objeto A tendrá el primer elemento en su lista y el segundo objeto A tendrá el segundo elemento en su lista.
¿Alguien puede explicar cómo sucede esto?
PS:
me las arreglo para resolver este problema moviendo el aList dentro de un constructor:
def __init__(self):
self.aList = [];
pero todavía estoy curioso acerca de este comportamiento
Puedo ver en su código anterior, está asignando a 'a', el contenido de A. Uno supondría que los contenidos de 'a' serían idénticos a los de A, ¿no? –
posible duplicado de [¿Cómo evito tener datos de clase Python compartidos entre instancias?] (Http://stackoverflow.com/questions/1680528/how-do-i-avoid-having-python-class-data-shared-among -instancias) –