Passar uma lista para uma classe python [duplicate]
Esta questão já tem uma resposta aqui:
“Menos espanto” e o argumento de padrão mutável 32 respostasEu tenho essa classe simples:
class revs:
def __init__(self, rev, us, accs = []):
self.rev = rev
self.us = us
self.accs = accs
E eu tenho esse pedaço de código para atribuir valores à lista e está dentro de um loop
rev, usu = cada_l.split("|")
acct = each_l[:2].strip()
list_acct.append(acct)
e por último, eu crio um dict para gerenciar uma lista de revs como esta:
drevs = {}
cada = revs(rev, us, list_acct)
drevs[cada.rev] = cada
E funciona corretamente com rev e nós, mas com o list_acct está sempre atualizando todas as instâncias:
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"]'
E se eu mudar list_acct.clear (), os valores em todas as instâncias são claros, eu ainda sou relativamente novo no Python e isso me confunde.
obrigado