python调用数据返回字典dict数据的现象1
思考:
可以看到这两种情况,区别在于构造函数make()里赋值给字典dict的方式不同。
使用相同的调用方式,而结果却完全不同。可以看到第二种情况才是我们想要的结果。
目前不知道第一种情况为何会出现这样的结果,是何种原因造成的?
话题2:https://www.cnblogs.com/zwgbk/p/10251909.html
说明:
第一种情况
键入代码:
1 def make(): 2 dict= { 3 'a': None 4 } 5 for a in range(3): 6 dict['a']=a 7 yield dict 8 9 list = [] 10 for val in make(): 11 print('添加前打印{}'.format(val)) 12 list.append(val) 13 print('添加后打印{}'.format(val)) 14 15 print(list)
得到结果:
1 添加前打印{'a': 0} 2 添加后打印{'a': 0} 3 添加前打印{'a': 1} 4 添加后打印{'a': 1} 5 添加前打印{'a': 2} 6 添加后打印{'a': 2} 7 [{'a': 2}, {'a': 2}, {'a': 2}]
说明:
第二种情况
键入代码:
1 def make(): 2 for a in range(3): 3 dict = { 4 'a': a 5 } 6 yield dict 7 8 list = [] 9 for val in make(): 10 print('添加前打印{}'.format(val)) 11 list.append(val) 12 print('添加后打印{}'.format(val)) 13 14 print(list)
得到结果:
1 添加前打印{'a': 0} 2 添加后打印{'a': 0} 3 添加前打印{'a': 1} 4 添加后打印{'a': 1} 5 添加前打印{'a': 2} 6 添加后打印{'a': 2} 7 [{'a': 0}, {'a': 1}, {'a': 2}]