初识闭包
Posted jb9527
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初识闭包相关的知识,希望对你有一定的参考价值。
‘‘‘ 闭包的概念:函数里面嵌套函数,外层函数返回里层函数,这种情况称之为闭包 闭包是概念,不是某种函数类型,是一种特殊的函数调用 闭包可以得到外层函数的局部变量,是函数内部和函数外部沟通的桥梁。 ‘‘‘ ‘‘‘ 函数里面可以在定义函数,那么函数里面定义的函数可以在外面调用吗? 如果可以的话,怎么做呢? ‘‘‘ # 正常嵌套函数使用举例: def func(): print("这是func在调用") def func1(): print("这是func1在调用") func1() #这个调用与def func1处于同一级,调用func1() func() # 这是func在调用 # 这是func1在调用 # 闭包:函数里面嵌套函数,外层函数返回里层函数,注意是返回,而不是在里面直接调用. def func(): def func1(): return "hello" return func1 #注意不要写括号,因为加了括号就是调用,我们这里需要返回的是函数体. func() #这样写运行没有任何输出,因为现在的func()相当于在使用func1返回的函数体,即返回func1函数体. # func()相当于func1,就是一个函数对象,要调用很简单func()() func()() #此时还是没有输出,为什么呢?注意是返回值的形式,需要去接收它. a = func()() #将返回值赋给变量a print(a) #------------里面还可以写更多函数------------------------------------ def func(): def func1(): return "Hello" def func2(): return "LuXi" def func3(): return "Good" return func2 #注意这里想在外面使用哪一个,这里就返回哪一个. func()() a = func()() print(a) #结果为func2函数的返回值LuXi #------闭包可以得到外层函数的局部变量,是函数内部和函数外部沟通的桥梁。------------------- def func(): a = 100 def func1(): return a+a return func1 b = func()() print(b) #结果为200,验证闭包可以得到外层函数的局部变量,是函数内部和函数外部沟通的桥梁.
以上是关于初识闭包的主要内容,如果未能解决你的问题,请参考以下文章
初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段
初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段