据the python tutorial,功能寻找在封闭函数的符号表变量名寻找全局函数之前:封装函数是什么?
一个函数的执行介绍用于函数的局部变量一个新的符号表。更确切地说,函数中的所有变量赋值都将值存储在本地符号表中;而变量引用首先在本地符号表中查找,然后在封闭函数的本地符号表中,然后在全局符号表中,最后在内置名称表中查找。因此,全局变量不能直接在函数内赋值(除非在全局语句中命名),尽管它们可能被引用。
“封闭功能”是什么意思,什么时候使用?
我看到下面的代码打印10称为
def parent_function():
y=10
def child_function():
print y
child_function()
当但是,调用child_function()单独产生错误。封闭函数使用频繁吗?
谢谢。我仍然有点困惑,当这将是有用的功能,这可能是因为我不知道什么是闭包 – dandelion 2012-02-17 22:22:28
这是一个很好的,但单独的问题。例如,考虑'y = 10'不是一个简单的赋值,但实际上是一个非常昂贵的操作,需要'child_function'。考虑一下,不是一个'child_function',你有很多。不必在每个单独的函数中放置这个非常昂贵的计算,并且可以在每次函数调用时计算它,您可以将其封装在一个闭包中,并为这个假设的“child_functions”集计算。看看[这](http://stackoverflow.com/questions/1305570/closures-why-are-they-so-useful)一些有用的答案。 – malloc47 2012-02-18 01:03:36