Übergeben Sie eine Liste an eine Klasse Python [duplizieren]
Diese Frage hat hier bereits eine Antwort:
"Wenig Erstaunen" und das veränderbare Standardargument 32 AntwortenIch 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