下面我用python编写的代码在下面的行中给出了一个警告:some_new_object['someVar'] = cd['someVar']
警告是
^{pr2}$
代码:def some_object():
return {
'someId': 0,
'someVar' : ''
}
def warn_test(in_list):
try:
new_list = []
some_new_object = some_object()
for cd in in_list:
if cd['someVar']:
new_list.append(cd)
for cd in new_list:
some_new_object['someVar'] = cd['someVar']
in_list.append(some_new_object.copy())
return in_list
except Exception:
print 'baaa'
#Main Program
new_obj = some_object()
new_obj['someId'] = 1
new_obj['someVar'] = 'Next'
new_obj2 = some_object()
new_obj2['someId'] = 1
new_obj2['someVar'] = None
new_list = []
new_list.append(new_obj)
new_list.append(new_obj2)
out_list = warn_test(new_list)
for obj in out_list:
print obj
如果我将warn_test功能改为:def warn_test(in_list):
try:
new_list = []
some_new_object = some_object()
for cd in in_list:
if cd['someVar']:
some_new_object['someVar'] = cd['someVar']
new_list.append(some_new_object.copy())
for cd in new_list:
in_list.append(cd)
return in_list
except Exception:
print 'baaa'
它没有给我任何警告。在
有人能帮助我理解为什么我得到警告,以及我如何在第二次迭代中访问cd['someVar']而不收到警告?在
我知道这个代码很奇怪,我需要这个项目我正在工作,我做了这个测试在这里分享,但它给我同样的警告,所以解决这个问题的解决方案将在我的系统中修复它。(此系统必须提供无警告)