1
我正在學習Python,並且碰到了一些Pythonic奇怪的東西。我無法弄清楚爲什麼在返回時,這個函數拋出數據。在Python中返回列表
def foo(mylist=None):
print "Input: {}".format(mylist)
if mylist is None:
mylist = list()
if len(mylist) == 3:
return mylist
else:
mylist.append(len(mylist))
foo(mylist)
print "Output: {}".format(foo())
此打印:
Input: None
Input: [0]
Input: [0, 1]
Input: [0, 1, 2]
Output: None
我猜想,它與指向不再存在的清單做,但我不明白,在一個簡單的例子:
def simple_foo():
to_return = [1, 2, 3]
return to_return
print "Simple output: {}".format(simple_foo())
我甚至嘗試過(在富)深入複製我的列表到to_return變量,然後返回,但似乎並沒有工作。任何人都可以對此有所瞭解嗎?我會很感激。
謝謝!這甚至不是Python的東西;我應該抓住那個。 –