起因:我在一段代码中声明了一个全局变量best_accuracy,在一个函数中用到了这个变量if accuracy>best_accuracy,但是运行时报错“UnboundLocalError: local variable 'best_accuracy' referenced before assignment”。说明此处的best_accuracy被python当作函数中的局部变量了
调查:在python中,当函数中的某变量可能是指全局变量,也可能是指局部变量时,就会发生引用歧义。这时python默认这个变量是局部变量。如果想将其当作全局变量使用,需要加global关键字声明这是全局变量,例如:
global best_accuracy
if accuracy>best_accuracy:
best_accuracy = accuracy
网友评论