关于作用域的问题疑惑
代码如下:def d(L=[]):
print(L)
if L == []:
print('empty')
L = []
L.append('0')
return L
def e(L=[]):
print(L)
if L == []:
print('empty')
#L = []
L.append('0')
return L
函数d重复调用结果如下:
>>> d()
[]
empty
['0']
>>> d()
[]
empty
['0']
>>>
函数e重复调用结果如下:
>>> e()
[]
empty
['0']
>>> e()
['0']
['0', '0']
>>>
我知道之所以结果会不一样,应该跟其作用域有关系,但是对其机制还是理解的不是很清楚,希望有大神能够给详细解答一下,谢谢!
刚注册没多久,没多少鱼币,就不悬赏了哈
不是作用域的问题,是python内部为了节省资源会保存上一次的容器,你在e函数中可以试着打印id(L)
页:
[1]