到处环顾四周,找不到答案。
因此,我调用raw_input()或input()来填充一个简单变量。但是我没有运行该功能,而是得到
UnboundLocalError: local variable 'input' referenced before assignment
在我的第一次调用之前,我的代码在任何地方都没有“ input()”,并且从不使变量共享名称。 “ raw_input()”也会发生同样的情况。我在这里感到困惑,因为对函数的调用在其他代码中以及在控制台上都可以正常工作,但是由于某种原因在此上引发错误。没有以前的电话。有趣的是,它在我第一次运行代码时就起作用了,但是现在没有了。我在找什么?
编辑:有人要求输入代码。没什么可显示的。
end = False
lightsoff = []
lightson = []
bias = []
i = 0
while not end:
print "Set #" + str(i + 1) +", LED off: ",
offFile = input()
编辑:要在这里更正,在代码中的后面(很长)会引用一个名为“输入”的变量。我向后写了一些参考。我不知道Python在运行之前就列出了将成为局部变量的列表(或其他内容),从而引发了诸如此类的问题。
答案 0 :(得分:1)
我怀疑您的代码有点像:
>>> def x():
... input = input()
... print(input)
...
>>> x()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in x
UnboundLocalError: local variable 'input' referenced before assignment
>>>
问题是您创建了一个名为“输入”的变量,然后尝试从该变量中获取某些东西。
>>> def y():
... val = input()
... print(val)
...
>>> y()
工作会好一些。在python(以及大多数动态语言)中,函数也是一种值-因此您可以像使用其他任何变量一样使用函数的名称。
因此,一个好主意是不要将变量命名为与函数相同。
有帮助吗?