python - 如何修复Python中两个对象同名 'local variable referenced before assignment'错误

标签 python function local

我定义了一个函数,并在该函数或另一个函数中通过调用同名函数来分配同名值。我收到此错误

UnboundLocalError: local variable 'demo01' referenced before assignment

错误发生在这里

def demo01():
    return 5

def demo02():
    demo01=demo01()

demo02()

UnboundLocalError: local variable 'demo01' referenced before assignment

但是这些片段很好

def demo01():
    return 5

def demo02():
    demo01=demo01()

demo01 = demo01()

def demo01():
    return 5

def demo02():
    demo02=demo01()

demo02()

最佳答案

当已有变量时,以该名称创建新变量将覆盖现有变量,例如:

print = 2 # change the print() function to a variable named 2
print('string')

会给

TypeError: 'int' object is not callable

回到你的代码:

demo01 = lambda: 5 # this is more of an advanced keyword, feel free to do it your way

def demo02():
    demo01 = demo01() # "demo01 = [val]" tells python to assign a value to demo01, and you cannot assign a variable to the same variable:
variable = variable

显然不可能;给出

NameError: name 'variable' is not defined

在全局状态中使用时,在本地(类或函数)中使用时出现 UnboundLocalError。

分配期间使用的变量名称和其他变量(如果有)不得是或引用您当前分配的变量

如果您确实需要使用相同的变量:

variable_ = variable()
variable = variable_

关于python - 如何修复Python中两个对象同名 'local variable referenced before assignment'错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56121439/

相关文章:

python - 如何在 Django Rest Framework 中创建 Json Web token 以供用户登录?

单击两个不同的按钮时,jQuery 调用相同的函数

javascript - 有没有办法去获取 typescript 来检测我何时从函数返回未定义?

python - 从在所述函数中定义的另一个函数中更改函数的局部变量.. Python

git - 如何将 aptana 连接到本地 GIT 存储库

html - 本地计算机上的 Img Src

python - 使用 google ip 而不是域名时的 TooManyRedirects

Python 3.5 base64解码似乎不正确?

python - 您可以推荐哪种适用于 python 的 ldap 对象映射器?

javascript - 是否可以将这些相似的功能合并为一个功能?