pysunred 发表于 2023-3-14 12:53:33

为什么全局变量无法应用到函数中的for循环中????


最近碰到个问题,
我定义一个全局变量total,
如果只是简单在函数中打印,是没问题
total = 10
def remove():
    print(total)

但是我在函数中使用了for循环,
它就无法传递,
提示:local variable 'total' referenced before assignment
total = 10
def remove():
    print(total)
    for i in range(5):
      total -= 1

因为这个变量的数值开始运行时是固定的,
后面是会变化的,
所以我不能用函数形参进行传递remove(total)

说白了,我就想这个函数只获取一次这个变量的值,
后续由这个函数进行处理这个变量值。
请教下高手们,感谢!!!!

isdkz 发表于 2023-3-14 12:59:30

你可以使用 global 关键字来在函数中引用全局变量。

在你的例子中,你可以将 total 声明为全局变量并在函数中使用 global 关键字,如下所示:

total = 10

def remove():
    global total
    print(total)
    for i in range(5):
      total -= 1
    print(total)

这样,你就可以在函数中访问并修改全局变量 total 的值了。

请注意,在函数中使用全局变量会增加代码的复杂度,因此请根据实际需求谨慎使用。

KeyError 发表于 2023-3-14 17:22:56

total -= 1
了解一下
页: [1]
查看完整版本: 为什么全局变量无法应用到函数中的for循环中????