哈士奇WWW
它确实可以正确处理外部函数的多次调用。“变量” inner.y位于的当前调用中outer。因为它不是变量,所以它不是变量,而是对象属性(对象是函数inner本身)。这非常丑陋(请注意,只能在inner定义函数后才能创建属性),但看起来很有效。def outer(): def inner(): inner.y += 1 return inner.y inner.y = 0 return innerf = outer()g = outer()print(f(), f(), g(), f(), g()) #prints (1, 2, 1, 3, 2)