在编程中,全局变量在程序中的所有函数之间共享。修改函数内部的全局变量应该反映其在整个程序中的变化。但是,某些情况可能会导致意外行为,如以下场景中突出显示的那样。
问题:
给出以下代码片段:
<code class="python">done = False def function(): for loop: code if not comply: done = True #let's say that the code enters this if-statement while done == False: function()</code>
当函数内的 did 变量设置为 True 时,代码似乎尝试退出 while 循环。然而,当 function() 没有正确修改全局 did 变量时,就会出现问题,导致 while 循环无限期地继续下去。
解决方案:
问题位于函数的范围内。函数创建自己的命名空间,这意味着 function() 中的 did 变量是本地创建的,与全局 did 变量不同。要访问和修改全局done变量,必须使用global关键字:
<code class="python">def function(): global done for loop: code if not comply: done = True</code>
使用全局done可以确保在function()中对done变量所做的更改影响全局变量,从而触发退出while 设置为 True 时循环。
说明:
global 关键字用于在局部范围内声明和修改全局变量,例如函数。它允许函数使用原始变量,而不是创建新的本地副本。通过使用全局done,函数可以修改全局done变量,使其更改可以在函数外部访问。
以上是为什么使用 Global 关键字修改函数中的全局变量很重要?的详细内容。更多信息请关注PHP中文网其他相关文章!