当我运行您的代码时,出现以下错误:
UnboundLocalError: local variable '_total' referenced before assignment
此问题是由以下行引起的:
_total += PRICE_RANGES[key][0]
有关范围和命名空间的文档 说:
Python的一个特殊怪癖是-如果没有有效的
global语句- 对名称的分配总是进入最内部的范围
。分配不复制数据,它们只是将名称绑定到对象。
因此,由于该行实际上是在说:
_total = _total + PRICE_RANGES[key][0]
它
_total在的名称空间中创建
recurse()。由于这
_total是新的未分配内容,因此您不能在其中使用它。


![Python嵌套函数变量作用域[重复] Python嵌套函数变量作用域[重复]](http://www.mshxw.com/aiimages/31/669501.png)
