- 论坛徽章:
- 0
|
清空字典应该调用字典提供的函数 clear, 例如 :
a = {};
#some codes here
a.clear();
第一句生成了一个字典对象,中间做了若干操作后,使用 a.clear() 来清空她。
而在你的函数中,将字典作为参数传给 init() , 然后首先使用 data={} ,
不是清空了传入的字典, 而是在函数局部生成一个新的名为 data 的字典,
后续的操作都是对这个局部变量执行的,而没有对外界传入的字典进行。
下面的代码可以证明这一点:
~/tmp $ cat a.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
def init(data):
# data.clear();
data = { }
data['first']='tom'
data['middle']={}
data['last']={}
return data
if __name__ == '__main__':
storage={}
tmp = init(storage)
print "A", storage
print "B", tmp
~/tmp $ python a.py
A {}
B {'middle': {}, 'last': {}, 'first': 'tom'}
个人理解。 |
|