soy python novato, y la variable miembro de clase funciona raro en mi código python. algunos funcionan como variables normales, pero algunos funcionan como variables estáticas.variable miembro python de instancia funciona como variable miembro, y algunos funciona como variable estática
class Chaos:
list_value = []
value = "default"
def set_value(self, word):
self.list_value.append(word)
self.value = word
def show(self, num):
print(str(num) + "====")
print("value : " + self.value)
for st in self.list_value:
sys.stdout.write(st)
print("\n=====\n")
a = Chaos()
a.show(0)
a.set_value("A")
a.show(1)
b = Chaos()
a.show(2)
b.show(3)
resultado
0====
value : default
=====
1====
value : A
A
=====
2====
value : A
A
=====
3====
value : default
A
=====
pero el último resultado de la prueba es diferente de lo que esperaba en la última prueba. No debe haber "A" en el 'valor_de_lista' de la instancia de 'b'. Se acaba de crear, y nunca se ha agregado 'A' antes. Agregué 'A' a la instancia de 'a', no 'b'. Pero el resultado me muestra que también hay 'A' en 'b' Además, el 'list_value' y el 'valor' en la clase funcionan de manera diferente. Parece que ambos tienen la misma sintaxis. ¿Por qué funcionan de manera diferente?
posible duplicado de [¿Por qué se recuerda el atributo de clase?] (Http://stackoverflow.com/questions/9713259/why-class-attribute-is-remembered) –