相关疑难解决方法(0)

在函数中使用全局变量

如何在函数中创建或使用全局变量?

如果我在一个函数中创建一个全局变量,我如何在另一个函数中使用该全局变量?我是否需要将全局变量存储在需要访问的函数的局部变量中?

python scope global-variables

2939
推荐指数
22
解决办法
307万
查看次数

不明白为什么会发生UnboundLocalError

我在这做错了什么?

counter = 0

def increment():
  counter += 1

increment()
Run Code Online (Sandbox Code Playgroud)

上面的代码抛出了一个UnboundLocalError.

python scope global-variables

153
推荐指数
5
解决办法
18万
查看次数

引用全局原语与对象

有人可以用Python解释一下下面的结果吗?

当运行以下代码片段时,Python 会抛出错误,指出该变量x在赋值之前被引用:

x = 1

def increase_x():
    x += 1

increase_x()
Run Code Online (Sandbox Code Playgroud)

当然,解决方案是global x在 的函数声明之后包含该行increase_x

但是,当运行下一段代码时,没有错误,结果正如您所期望的:

x = [2, -1, 4]

def increase_x_elements():
    for k in range(len(x)):
        x[k] += 1

increase_x_elements()
Run Code Online (Sandbox Code Playgroud)

这是因为整数在Python中是基元(而不是对象),所以x在第一个片段中是存储在内存中的基元,而x在第二个片段中引用了指向列表对象的指针?

python pointers global

5
推荐指数
1
解决办法
740
查看次数

标签 统计

python ×3

global-variables ×2

scope ×2

global ×1

pointers ×1