Re: [Python-de] Neue Instance mit gleichem Typ über eine Variable?
28 May
2013
28 May
'13
3:08 p.m.
Peter Otten wrote:
Nicht nur bei verschiedenen Typen; ein leeres dict wird ebenfalls von
var = var or {}
durch ein neues ersetzt, das heißt
def foo(x=None): if x is None: x = {} return x
def bar(x=None): return x or {}
x = {} assert x is foo(x) # ok assert x is bar(x) # error
Das Problem kann man vermeiden, indem man sich an die Konvention hält, dass Funktionen, die ihre Argumente verändern, None zurückgeben.
Seiteneffekte auf einen mutable type innerhalb einer Funktion/Methode und diesen dann als Ergebnis zurück liefern ist sowieso nicht wirklich robust. Kommt bei mir praktisch nicht vor. Ciao, Michael.
4128
Age (days ago)
4128
Last active (days ago)
0 comments
1 participants
participants (1)
-
Michael Ströder