博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
初识闭包
阅读量:6306 次
发布时间:2019-06-22

本文共 1138 字,大约阅读时间需要 3 分钟。

'''闭包的概念:函数里面嵌套函数,外层函数返回里层函数,这种情况称之为闭包闭包是概念,不是某种函数类型,是一种特殊的函数调用闭包可以得到外层函数的局部变量,是函数内部和函数外部沟通的桥梁。''''''函数里面可以在定义函数,那么函数里面定义的函数可以在外面调用吗?如果可以的话,怎么做呢?'''# 正常嵌套函数使用举例: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()() #将返回值赋给变量aprint(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 func1b = func()()print(b) #结果为200,验证闭包可以得到外层函数的局部变量,是函数内部和函数外部沟通的桥梁.

 

转载于:https://www.cnblogs.com/jb9527/p/10593157.html

你可能感兴趣的文章
WinForm间传值
查看>>
mybatis中动态SQL之trim详解
查看>>
数据结构与算法--------概述
查看>>
js中退出语句break,continue和return(语句详解)
查看>>
Android 学习笔记(一)
查看>>
node.js学习网址
查看>>
Tomcat学习总结(7)——Tomcat与Jetty比较
查看>>
js获取当前时间的前一天/后一天
查看>>
开博第一天
查看>>
代码轮子之很简单但是挺管用的基于C# Task的模拟并发的代码
查看>>
《亲爱的界面,让用户乐于使用、爱不释手》小编推介
查看>>
【转】.NET正则基础——.NET正则类及方法应用
查看>>
【视频编解码·学习笔记】13. 提取PPS信息程序
查看>>
数学 - 线性代数导论 - #5 矩阵变换之置换与转置
查看>>
java数据结构:队列
查看>>
IPsec工具之ipsec-tools
查看>>
jmeter文件下载
查看>>
Selenium2Library系列 keywords 之 _SelectElementKeywords 之 get_selected_list_labels(self, locator)...
查看>>
ASP.NET 中执行 URL 重写
查看>>
JS从定义到执行
查看>>