网上看到的代码:
1 2 3 4 5 |
def clear_list(l): l = [] ll = [1,2,3] clear_list(ll) print(ll) |
输出是[1,2,3],并不是一个空列表,是不是很奇怪?
首先=号是赋值,而不是改变原列表内容,所以在函数内只是赋值而已,因为在函数内所以 l只是内部变量,函数运行完就消失了,也就是说函数内的变量只是作用域在函数内,所以当函数运行完,并不影响 函数外定义的值,输出仍然是[1,2,3], 如果想实现清除列表功能,改成l.clear()就可以