Przekaż listę do klasy python [duplikat]

To pytanie ma już tutaj odpowiedź:

„Least Astonishment” i argument Mutable Default Argument 32 odpowiedzi

Mam tę prostą klasę:

class revs:
    def __init__(self, rev, us, accs = []):
        self.rev = rev
        self.us = us
        self.accs = accs

I mam ten fragment kodu, aby przypisać wartości do listy i jest wewnątrz pętli

rev, usu = cada_l.split("|")
acct = each_l[:2].strip()
list_acct.append(acct)

i na koniec tworzę dyktę, aby zarządzać listą takich obrotów:

drevs = {}
cada = revs(rev, us, list_acct)
drevs[cada.rev] = cada

I działa poprawnie z rev i nas, ale z list_acct zawsze aktualizuje wszystkie instancje:

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"]'

A jeśli zmienię list_acct.clear (), wartości we wszystkich instancjach są jasne, wciąż jestem całkiem nowy w Pythonie i to mnie wprawia w zakłopotanie.

Dzięki

questionAnswers(1)

yourAnswerToTheQuestion