当前位置: 首页 > news >正文

界面设计最好的网站目前中国建筑行业现状

界面设计最好的网站,目前中国建筑行业现状,wap网站 微信登录,手机上怎样制作网站闭包这个概念好难理解#xff0c;身边朋友们好多都稀里糊涂的#xff0c;稀里糊涂的林老冷希望写下这篇文章能够对稀里糊涂的伙伴们有一些帮助~ 请大家跟我理解一下#xff0c;如果在一个函数的内部定义了另一个函数#xff0c;外部的我们叫他外函数#xff0c;内部的我们…闭包这个概念好难理解身边朋友们好多都稀里糊涂的稀里糊涂的林老冷希望写下这篇文章能够对稀里糊涂的伙伴们有一些帮助~ 请大家跟我理解一下如果在一个函数的内部定义了另一个函数外部的我们叫他外函数内部的我们叫他内函数。 闭包  在一个外函数中定义了一个内函数内函数里运用了外函数的临时变量并且外函数的返回值是内函数的引用。这样就构成了一个闭包。 一般情况下在我们认知当中如果一个函数结束函数的内部所有东西都会释放掉还给内存局部变量都会消失。但是闭包是一种特殊情况如果外函数在结束的时候发现有自己的临时变量将来会在内部函数中用到就把这个临时变量绑定给了内部函数然后自己再结束。 很晦涩很难理解啊我们来看一段代码^.^ 1 #闭包函数的实例2 # outer是外部函数 a和b都是外函数的临时变量3 def outer( a ):4 b 105 # inner是内函数6 def inner():7 #在内函数中 用到了外函数的临时变量8 print(ab)9 # 外函数的返回值是内函数的引用 10 return inner 11 12 if __name__ __main__: 13 # 在这里我们调用外函数传入参数5 14 #此时外函数两个临时变量 a是5 b是10 并创建了内函数然后把内函数的引用返回存给了demo 15 # 外函数结束的时候发现内部函数将会用到自己的临时变量这两个临时变量就不会释放会绑定给这个内部函数 16 demo outer(5) 17 # 我们调用内部函数看一看内部函数是不是能使用外部函数的临时变量 18 # demo存了外函数的返回值也就是inner函数的引用这里相当于执行inner函数 19 demo() # 15 20 21 demo2 outer(7) 22 demo2()#17 从上面例子是我写的一个最简单的很典型的闭包。我估计如果是初学的小伙伴可能很多名词都不明白是什么意思没关系我把这些名词按照自己的理解去解释一下~ 1 外函数返回了内函数的引用 引用是什么在python中一切都是对象包括整型数据1函数其实是对象。 当我们进行a1的时候实际上在内存当中有一个地方存了值1然后用a这个变量名存了1所在内存位置的引用。引用就好像c语言里的指针大家可以把引用理解成地址。a只不过是一个变量名字a里面存的是1这个数值所在的地址就是a里面存了数值1的引用。 相同的道理当我们在python中定义一个函数def demo():  的时候内存当中会开辟一些空间存下这个函数的代码、内部的局部变量等等。这个demo只不过是一个变量名字它里面存了这个函数所在位置的引用而已。我们还可以进行x demo y demo 这样的操作就相当于把demo里存的东西赋值给x和y这样x 和y 都指向了demo函数所在的引用在这之后我们可以用x() 或者 y() 来调用我们自己创建的demo() 调用的实际上根本就是一个函数x、y和demo三个变量名存了同一个函数的引用。 不知道大家有没有理解很晦涩希望我说明白了我想表达的。 有了上面的解释我们可以继续说返回内函数的引用是怎么回事了。对于闭包在外函数outer中 最后return inner我们在调用外函数 demo outer() 的时候outer返回了innerinner是一个函数的引用这个引用被存入了demo中。所以接下来我们再进行demo() 的时候相当于运行了inner函数。 同时我们发现一个函数如果函数名后紧跟一对括号相当于现在我就要调用这个函数如果不跟括号相当于只是一个函数的名字里面存了函数所在位置的引用。 2 外函数把临时变量绑定给内函数 按照我们正常的认知一个函数结束的时候会把自己的临时变量都释放还给内存之后变量都不存在了。一般情况下确实是这样的。但是闭包是一个特别的情况。外部函数发现自己的临时变量会在将来的内部函数中用到自己在结束的时候返回内函数的同时会把外函数的临时变量送给内函数绑定在一起。所以外函数已经结束了调用内函数的时候仍然能够使用外函数的临时变量。 在我编写的实例中我两次调用外部函数outer,分别传入的值是5和7。内部函数只定义了一次我们发现调用的时候内部函数是能识别外函数的临时变量是不一样的。python中一切都是对象虽然函数我们只定义了一次但是外函数在运行的时候实际上是按照里面代码执行的外函数里创建了一个函数我们每次调用外函数它都创建一个内函数虽然代码一样但是却创建了不同的对象并且把每次传入的临时变量数值绑定给内函数再把内函数引用返回。虽然内函数代码是一样的但其实我们每次调用外函数都返回不同的实例对象的引用他们的功能是一样的但是它们实际上不是同一个函数对象。 闭包中内函数修改外函数局部变量 在闭包内函数中我们可以随意使用外函数绑定来的临时变量但是如果我们想修改外函数临时变量数值的时候发现出问题了咋回事捏哇哇大哭 在基本的python语法当中一个函数可以随意读取全局数据但是要修改全局数据的时候有两种方法:1 global 声明全局变量 2 全局变量是可变类型数据的时候可以修改 在闭包内函数也是类似的情况。在内函数中想修改闭包变量外函数绑定给内函数的局部变量的时候 1 在python3中可以用nonlocal 关键字声明 一个变量 表示这个变量不是局部变量空间的变量需要向上一层变量空间找这个变量。 2 在python2中没有nonlocal这个关键字我们可以把闭包变量改成可变类型数据进行修改比如列表。 上代码 1 #修改闭包变量的实例2 # outer是外部函数 a和b都是外函数的临时变量3 def outer( a ):4 b 10 # a和b都是闭包变量5 c [a] #这里对应修改闭包变量的方法26 # inner是内函数7 def inner():8 #内函数中想修改闭包变量9 # 方法1 nonlocal关键字声明 10 nonlocal b 11 b1 12 # 方法二把闭包变量修改成可变数据类型 比如列表 13 c[0] 1 14 print(c[0]) 15 print(b) 16 # 外函数的返回值是内函数的引用 17 return inner 18 19 if __name__ __main__: 20 21 demo outer(5) 22 demo() # 6 11 从上面代码中我们能看出来在内函数中分别对闭包变量进行了修改打印出来的结果也确实是修改之后的结果。以上两种方法就是内函数修改闭包变量的方法。 还有一点需要注意使用闭包的过程中一旦外函数被调用一次返回了内函数的引用虽然每次调用内函数是开启一个函数执行过后消亡但是闭包变量实际上只有一份每次开启内函数都在使用同一份闭包变量 上代码 1 #coding:utf82 def outer(x):3 def inner(y):4 nonlocal x5 xy6 return x7 return inner8 9 10 a outer(10) 11 print(a(1)) //11 12 print(a(3)) //14 两次分别打印出11和14由此可见每次调用inner的时候使用的闭包变量x实际上是同一个。 闭包有啥用 很多伙伴很糊涂闭包有啥用啊还这么难懂 3.1装饰器装饰器是做什么的其中一个应用就是我们工作中写了一个登录功能我们想统计这个功能执行花了多长时间我们可以用装饰器装饰这个登录模块装饰器帮我们完成登录函数执行之前和之后取时间。 3.2面向对象经历了上面的分析我们发现外函数的临时变量送给了内函数。大家回想一下类对象的情况对象有好多类似的属性和方法所以我们创建类用类创建出来的对象都具有相同的属性方法。闭包也是实现面向对象的方法之一。在python当中虽然我们不这样用在其他编程语言入比如avaScript中经常用闭包来实现面向对象编程 3.3实现单例模式 其实这也是装饰器的应用。单例模式毕竟比较高大需要有一定项目经验才能理解单例模式到底是干啥用的我们就不探讨了。 谈了谈我在学习闭包的时候遇到的问题解决后自己的认识。希望对初学的好朋友们有所帮助。也欢迎其他大神伙伴们批评指正沟通交流~
http://www.huolong8.cn/news/3160/

相关文章:

  • 网站创建方案论文网站建设好公司
  • 网站开发一般有那些语言网站建设说课ppt
  • wordpress网站菜单固定免费培训网站
  • 网站内容优化的主要方法开发一个小程序的流程
  • 邹城网站网站建设做网站用php转html
  • 举报网站建设情况 汇报wordpress linux 建站教程
  • 广州网页制作网站维护企业网站软件下载
  • 游戏网站建设方案书怎么制作一份自己的简历
  • 网站设计能出来什么凡科商城怎么收费
  • 网站开发需求式样书网络公司注册多少钱
  • 深圳官方网站设计品牌型网站制作价格
  • 陕西网站建设优化建站wordpress播放器代码
  • 做直播网站用什么网上空间好湖州网站设计平台
  • 常德建设企业网站南宁网站制作设计
  • 有孩子做的网站郑州电子商务网站建设
  • 用什么软件写网站行政还要负责网站建设新媒体吗
  • 网站黑链检测怎么提高关键词搜索排名
  • 阿里云是不是做网站的求制作网站
  • 沧州市网站制作搜索引擎优化的重要性
  • 做类似淘宝网站怎么做的招代理的网站建设公司
  • 微信官方网站网址h5游戏平台搭建
  • php抽奖网站源码外链生成器
  • 高性能网站建设进阶指南重庆梁平网站建设哪家便宜
  • 人与马做的网站莱州房产网房产信息
  • h5网站有哪些网站设计应该怎么做
  • 做网站定金要多少专业的国内网站建设公司
  • 百度做网站的费用帮客户做网站
  • 东莞石碣网站建设我要表白网站在线制作
  • 做soho要不要注册网站赣州行业网站建设
  • 济南网站制作wordpress主题 制作教程