__init__ und keyword arguments
Verfasst: Freitag 11. Oktober 2019, 12:56
Hallo Python Forum,
kann mir bitte jemand das Folgende Verhalten erklären:
Angenommen ich habe die Klasse
wenn ich diese Mehrmals ohne Argumente instanziere und den Inhalt verändere, verhält sich foo wie eine Klassenvariable, nicht wie eine Instanzvariable
also:
Ich benutze jetzt **kw_args um das Problem zu umgehen
Also so:
kann mir bitte jemand das Folgende Verhalten erklären:
Angenommen ich habe die Klasse
Code: Alles auswählen
class Test:
def __init__(self, foo={}):
print(foo)
self.foo = foo
also:
Code: Alles auswählen
# Ausgabe {}
f1 = Test()
f1.foo["a"] = 1
# Ausgabe {"a": 1}
f2 = Test()
Also so:
Code: Alles auswählen
class Test():
def __init__(self, *args, **kw_args):
self.foo = kw_args.get("foo", {})