1
def test(x, l=[]):
l.append(x)
return l
y = [1, 2, 3, 4]
r = test(7, y)
print(r)
Ausführungsergebnis von 1
[1, 2, 3, 4, 7]
2
def test(x, l=[]):
l.append(x)
return l
r = test(100)
print(r)
r = test(100)
print(r)
Ausführungsergebnis von 2
[100]
[100, 100]
Ich wollte den gleichen Prozess zweimal machen, Beim zweiten Mal wird 100 zu zwei.
Dies geschieht, weil die Liste als Referenz übergeben wird. Weil es oft zu Fehlern führt Übergeben Sie keine Verweise wie Listen und Wörterbücher als Standardargumente.
Schreiben Sie also wie folgt.
3
def test(x, l=None):
if l is None:
l = []
l.append(x)
return l
y = [1, 2, 3, 4]
r = test(7, y)
print(r)
r = test(100)
print(r)
r = test(100)
print(r)
Ausführungsergebnis von 3
[1, 2, 3, 4, 7]
[100]
[100]
Recommended Posts