谁能解释为什么此函数返回以下错误?
功能:
def scatter_x_y(self,filtered_data,x_parameter,y_parameter):
for i in range(len(filtered_data)):
if filtered_data[i].name==x_parameter:
x=filtered_data[i]
x_index=list(x.keys())
elif filtered_data[i].name==y_parameter:
y=filtered_data[i]
y_index=list(y.keys())
print x_index
错误:
UnboundLocalError: local variable 'x_index' referenced before assignment
如果循环从不执行,x_index
则为undefined。也不是y_index
; 它的值只有在短暂的时间内才能看到,因为它没有在elif
可见的范围之外定义。
你可能已经意动循环的印刷中,作为价值x_index
和y_index
只存在一个迭代。否则,将其打印或使用该值只会使您最后获得计算的值。然后,您可能想在循环内声明它们,否则在打印出来时会遇到相同的问题。当我们真的不希望将其打印出来时,这也可以防止不必要地重复打印任何一个值。
def scatter_x_y(self,filtered_data,x_parameter,y_parameter):
for i in range(len(filtered_data)):
x_index, y_index = None, None
if filtered_data[i].name==x_parameter:
x=filtered_data[i]
x_index=list(x.keys())
elif filtered_data[i].name==y_parameter:
y=filtered_data[i]
y_index=list(y.keys())
if x_index:
print "x_index={}".format(x_index)
if y_index:
print "y_index={}".format(y_index)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句