Pasar una lista a una clase python [duplicar]
Esta pregunta ya tiene una respuesta aquí:
"El menor asombro" y el argumento predeterminado mutable 32 respuestasTengo esta clase simple:
class revs:
def __init__(self, rev, us, accs = []):
self.rev = rev
self.us = us
self.accs = accs
Y tengo este código para asignar valores a la lista y está dentro de un bucle
rev, usu = cada_l.split("|")
acct = each_l[:2].strip()
list_acct.append(acct)
y por último, creo un dict, para gestionar una lista de revoluciones como esta:
drevs = {}
cada = revs(rev, us, list_acct)
drevs[cada.rev] = cada
Y funciona correctamente con rev y nosotros, pero con list_acct está actualizando todas las instancias:
drevs['1'].rev
'1'
drevs['2'].rev
'2'
drevs['1'].us
'user1'
drevs['2'].us
'user2'
drevs['1'].accs
'["Doc1","Doc2"]'
drevs['2'].accs
'["Doc1","Doc2"]'
Y si cambio list_acct.clear (), los valores en todos los casos son claros, todavía soy bastante nuevo en Python y esto me confunde.
Gracias