gpt4 book ai didi

python - 函数#python的内部环境

转载 作者:太空宇宙 更新时间:2023-11-03 16:25:15 24 4
gpt4 key购买 nike

在 python 2.7 中编码时,我遇到了关于函数内部环境的问题。这是简单的示例代码:

m=3

def f(x):
return m*x

当我在Python控制台中输入f(5)时,它返回15,这符合我的预期。但是,当我将代码编辑为:

m=3

def f(x):
m=m+1
return m*x

控制台返回UnboundLocalError:赋值前引用的局部变量'm',我不明白为什么。

我认为这两种情况下变量 m 没有区别。然而,一个是正确的,另一个则不正确。

最佳答案

发生这种情况是因为在第一种情况下,m 没有歧义,即它是一个全局。然而,在第二种情况下,在 m=m+1 中使用 m 会抛出错误,因为 python 会查找名为 m 的本地变量,并且它没有找到任何。您必须明确声明您正在使用全局。以下将起作用。

m=3

def f(x):
global m
m=m+1
return m*x

关于python - 函数#python的内部环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38047127/

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