在编程中使用函数时,理解作用域的概念非常重要。函数创建自己的私有名称空间,与全局范围分开。这意味着函数内声明的变量只能在该函数内访问。
考虑以下代码:
done = False def function(): for loop: code if not comply: done = True while done == False: function()
意图这段代码的作用是当 function() 中的 done 设置为 True 时退出 while 循环。然而,在 function() 将 did 设置为 True 后,代码并没有退出循环。
出现这个问题是因为 function() 中的变量 did 是局部变量变量,在函数的命名空间内创建。它与在函数外部定义的全局变量 did 是分开的。当 function() 给done赋一个新值时,实际上是修改局部变量,而不是全局变量。
要解决这个问题,你需要使用global 关键字在函数内显式引用全局变量。下面是更正后的代码:
def function(): global done for loop: code if not comply: done = True
通过使用 global,您可以确保函数内的 did 变量引用全局范围中定义的同一变量。这允许您从函数内修改全局变量。
以上是何时对全局变量使用 Global 关键字?的详细内容。更多信息请关注PHP中文网其他相关文章!