我知道这里有很多“python 范围问题”,但我对 python 非常生疏,我对不断遇到的“UnboundLocalError”问题感到很困惑。我读过“for”循环没有包含的范围,但我的代码似乎以这种方式运行......我的代码如下所示:
`
...
for b in blocks[:]:
if b.contains(CONSTANT_NUM):
r = b.split(CONSTANT_NUM+2)
if r: blocks.append(r)
Foo= struct.unpack('<H', b.data)[0]
Bar = Foo
...
print("Foo: 0x%x" % (Foo))
`
每当我运行它时,我都会收到错误“UnboundLocalError:赋值前引用的局部变量‘Foo’”。当我改为尝试打印 Bar 时,我得到了同样的错误。为什么不在“for”循环之外进行赋值?
请您参考如下方法:
很可能您的循环从未进入 if 语句,因此 Foo 从未被初始化。 您需要在循环之前对其进行初始化,以确保如果从未满足该条件,则您可以打印一些内容。
