2019-04-09 全局变量与局部变量

起因:我在一段代码中声明了一个全局变量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

详见python 全局变量引用与修改 - yanfengt - 博客园

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容