我遇到了一个与此类似的工厂功能的例子
def my_factory(a):
def my_factory_function(b):
return b ** a
return my_factory_function
给定此代码函数,my_factory_function可以这种方式访问...
>>> f = my_factory(2)
>>> print f
<function my_factory.<locals>.action at 0xwhatever>
现在我完全在这里,但我对下一步发生的事感到困惑......
>>> f(3)
9
因此,在此步骤中,它设法将值3平方或评估代码 返回3 ** 2
最后,我想知道的是嵌套函数如何设法保留关于a的值的状态信息。这最初是在我调用f = my_factory(2)时定义的,但是我想这个值在我调用嵌套函数时已经超出了范围。这是否意味着将函数存储为函数状态信息的变量的任何实例都与它一起存储?