gpt4 book ai didi

python - 如果我在给 ‘eggs’ 一个要在函数中使用的本地值之前运行 print(eggs),为什么会出现错误?

转载 作者:行者123 更新时间:2023-11-28 22:27:14 25 4
gpt4 key购买 nike

我在尝试理解全局语句时用 Python 编写了这段代码 -

eggs=24

def f():
print(eggs)
eggs=25
print(eggs)

f()
print(eggs)

输出应该是

24
25
24

Python 应该将 eggs = 24 视为全局变量,并且在调用函数 f() 时,它应该打印 eggs=24因为直到现在本地值还没有分配给鸡蛋。然后应将局部值 25 分配给 eggs 并在 24 之后将 25 打印在屏幕上。函数返回后,应将 eggs 分配给它的全局值,即最后应该在屏幕上打印 24 和 24。

但我收到一条错误消息,指出“UnboundLocalError: local variable 'eggs' referenced before assignment”。

我对 Python 如何运行此函数的理解哪里错了?

最佳答案

(Local variable referenced before assignment in Python?)的副本

这应该可以解决问题

eggs = 24

def f():
global eggs

print(eggs)
eggs = 25
print(eggs)

f()
print(eggs)

在 Stack Overflow 上有很多这样的问题,当你刚接触 Python 时,很难理解它在这种特定情况下的行为,因为在几乎任何命令式语言中,这样的代码都可以运行

var x = 1;

//prints 1 to console
console.log(x);

function f() {
x = 2;
}

f();

//prints 2 to console
console.log(x);

但是对于 Python,你的代码看起来像这样

var x = 1;

console.log(x);

function f() {
I_AM_NOT_X_EVEN_THOUGH_I_HAVE_A_NAME_X = 2;
}

f();

console.log(x);

关于python - 如果我在给 ‘eggs’ 一个要在函数中使用的本地值之前运行 print(eggs),为什么会出现错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44161143/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com