Übergeben Sie eine Liste an eine Klasse Python [duplizieren]

Diese Frage hat hier bereits eine Antwort:

"Wenig Erstaunen" und das veränderbare Standardargument 32 Antworten

Ich habe diese einfache Klasse:

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

Und ich habe dieses Stück Code zum Zuweisen von Werten zu der Liste und befindet sich innerhalb einer Schleife

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

Zum Schluss erstelle ich ein Diktat, um eine Liste von Revisionen wie folgt zu verwalten:

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

Und es funktioniert korrekt mit rev und uns, aber mit list_acct werden immer alle Instanzen aktualisiert:

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

Und wenn ich list_acct.clear () ändere, sind die Werte in allen Instanzen klar, ich bin noch ziemlich neu in Python und das verwirrt mich.

Vielen Dank

Antworten auf die Frage(1)

Ihre Antwort auf die Frage