函数内定义全局变量后外部访问触发NameError的问题求助
问题原因分析
核心问题是你从未调用过
function()函数
Python函数内部的代码只有在函数被调用时才会执行。你在function里用global声明要操作全局变量,还定义了num_of_clust和clust_index,但这些代码压根没运行过——全局空间里自然不会存在这两个变量,执行if num_of_clust >=1时必然触发NameError。验证解决方法:
在判断语句前加一行function(1)(参数随便传个合法值就行),调用一次函数后,全局变量就会被创建,判断逻辑就能正常执行。额外补充:
global关键字只是告诉Python“我要操作全局作用域的这个变量”,但如果全局作用域原本没有该变量,只有当函数被执行时,才会在全局作用域里创建它。函数没被调用的话,这一步永远不会发生。
内容的提问来源于stack exchange,提问作者theheretic
相关产品推荐
相关产品推荐

