![]() |
1
31
我相信你认为这是一个“可变性”的问题是正确的。虽然您发布的代码不会引发“UnboundLocalError”,但以下代码不会:
Python不允许您从内部作用域的外部作用域重新分配变量的值(除非您使用关键字“global”,这在本例中不适用)。 查看此python 2.6.2文档中“classes”文档的底部部分:
您的“unboundLocalError”是因为您的函数实际上声明了一个名为“a”的新变量,然后立即尝试对其执行“+=”操作,但由于“a”还没有值,所以失败了。(将“a+=1”视为“a=a+1”,如果“a”未定义,则可以看到问题)。 一般来说,如果你想修改“a”,人们通常绕过它的方式是使用可变类型传递“a”(如列表或字典)。您可以通过可变类型的内容修改“A”(正如您在使用此设置进行测试时可能注意到的那样)。 希望有帮助! |
![]() |
2
10
尝试将变量绑定为参数。
我会设法找出适当的文件。 编辑 因为您希望内部函数对外部作用域有副作用,所以需要使用一个可变的数据类型,如列表。整数和字符串是不可变的。
|
![]() |
3
8
您应该将变量指定为非局部变量以在闭包中保留其状态,因此定义应该如下所示
|
![]() |
Ali Özen · Laravel合并逻辑 7 年前 |
![]() |
Dark Patate · QML:重新加载模型 7 年前 |
![]() |
Wei Kang · 未找到Laravel eloquent模型类 7 年前 |
![]() |
Ajay · 表格标题在UI5应用程序中不可见 7 年前 |
![]() |
Romeo · KeystoneJS复数选项在AdminUI中不起作用 7 年前 |
![]() |
Stacky · 默认的“SpringWeb”模型属性用法和文档 7 年前 |