我已经阅读了几乎所有关于这个主题的其他问题,但是我的代码仍然不能工作。
我想我遗漏了一些关于 python 变量作用域的东西。
这是我的代码:
PRICE_RANGES = {
64:(25, 0.35),
32:(13, 0.40),
16:(7, 0.45),
8:(4, 0.5)
}
def get_order_total(quantity):
global PRICE_RANGES
_total = 0
_i = PRICE_RANGES.iterkeys()
def recurse(_i):
try:
key = _i.next()
if quantity % key != quantity:
_total += PRICE_RANGES[key][0]
return recurse(_i)
except StopIteration:
return (key, quantity % key)
res = recurse(_i)
我得到了
“未定义全局名‘ _ total’”
我知道问题出在 _total
的作业上,但我不明白为什么。
recurse()
不是应该可以访问父函数的变量吗?
谁能给我解释一下 Python 变量作用域我漏掉了什么?