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

app和网站的关系/怎么写软文

app和网站的关系,怎么写软文,门户网站建设多少钱,南昌做网站流程引入闭包 我们知道当函数调用完,函数内定义的变量都销毁了,但是我们有时候需要保存函数内的某个变量,每次在这个变量的基础上完成一些列的操作,比如:每次在这个变量的基础上和其它数字进行求和计算,那怎么办…

引入闭包

      我们知道当函数调用完,函数内定义的变量都销毁了,但是我们有时候需要保存函数内的某个变量,每次在这个变量的基础上完成一些列的操作,比如:每次在这个变量的基础上和其它数字进行求和计算,那怎么办呢?
      我们就可以通过咱们今天学习的闭包来解决这个需求。

1 闭包的定义

      在函数嵌套的前提下,内部函数使用了外部函数的变量,并且外部函数返回了内部函数,我们把这个使用外部函数变量的内部函数称为闭包

  • 闭包的构成条件
    ① 在函数嵌套(函数里面再定义函数)的前提下
    ② 内部函数使用了外部函数的变量(还包括外部函数的参数)
    ③ 外部函数返回了内部函数

2 简单闭包的示例代码

def func_out(num1):def func_inner(num2):            # 内部函数使用了外部函数的变量(num1)result = num1 + num2print("结果是:", result)return func_inner                # 外部函数返回了内部函数,这里返回的内部函数就是闭包f = func_out(1)                      # 创建闭包实例  
f(2)                                 # 执行闭包 1 + 2 = 3
f(3)
===运行结果:=================================================================
结果是: 3
结果是: 4

2.1 闭包执行结果的说明

  • 通过上面的输出结果可以看出闭包保存了外部函数内的变量num1,每次执行闭包都是在num1 = 1 基础上进行计算;
  • 闭包可以保存外部函数内的变量,不会随着外部函数调用完而销毁;
  • 由于闭包引用了外部函数的变量,则外部函数的变量没有及时释放,消耗内存。

2.2 实现闭包的标准格式

 def out(a):b = 10def inner():                    # 内部函数使用了外部函数的变量或者参数print(a, b)return inner                    # 返回内部函数, 这里返回的内部函数就是闭包实例

3 闭包的使用

示例: 使用闭包,实现不同人的对话

def config_name(name):def say_info(info):print(name + ": " + info)return say_infotom = config_name("Tom")
jerry = config_name("jerry")
tom("hey, jerry! 我们一起玩吧!")
jerry("呵呵哒, 不和你玩!")
tom("来呀~ 来呀~")
jerry("滚犊子!")===运行结果:=================================================================Tom: hey, jerry! 我们一起玩吧!
jerry: 呵呵哒, 不和你玩!
Tom: 来呀~ 来呀~
jerry: 滚犊子!
  • 闭包案例说明:闭包不仅可以保存外部函数的变量还可以提高代码的复用性。

4 在闭包内部修改闭包外部变量nonlocal

def func_out(num1):def func_inner(num2):nonlocal num1                   # 告诉解释器,此处使用的是外部变量num1num1 = 10                       # 修改外部变量num1result = num1 + num2            # 内部函数使用了外部函数的变量(num1)print("计算结果:", result)print("num1:", num1)func_inner(1)print("num1:", num1)return func_innerf = func_out(3)
f(2)===运行结果:=================================================================num1: 3
计算结果: 11
num1: 10                              # 闭包内,修改外部变量成功
计算结果: 12

没有使用nonlocal的示例:

def func_out(num1):def func_inner(num2):num1 = 10                   # 这里本意想要修改外部num1的值,实际上是在内部函数定义了一个局部变量num1result = num1 + num2        # 内部函数使用了外部函数的变量(num1)print("计算结果:", result)print("num1:", num1)func_inner(1)print("num1:", num1)return func_innerf = func_out(3)
f(2)===运行结果:=================================================================num1: 3
计算结果: 11
num1: 3                              # 闭包内,修改外部变量失败
计算结果: 12

闭包内不做变量的修改(作为对比,便于理解)

def func_out(num1):def func_inner(num2):result = num1 + num2print("计算结果:", result)print("num1:", num1)func_inner(1)print("num1:", num1)return func_innerf = func_out(3)
f(2)===运行结果:=================================================================num1: 3
计算结果: 4
num1: 3
计算结果: 5
http://www.lbrq.cn/news/1455355.html

相关文章:

  • 西宁网站制作费用是多少钱/网站推广策划书
  • 五合一网站定制/友链对网站seo有帮助吗
  • 全球十大摄影作品/百度爱采购优化
  • 武汉网站建设yundaow/哈尔滨网站优化
  • 北京网站制作的/深圳小程序开发公司
  • 公司名称起名大全免费/优化大师win10
  • 做网站的天津/云巅seo
  • 宁夏住房和城乡建设局网站/seo比较好的公司
  • 开源程序做网站任务/百度优化教程
  • it运维解决方案/如何做好seo优化
  • 网站开发答辩难点/整合营销方案案例
  • 鹤城机关建设网站/免费人脉推广软件
  • 1个人做多网站负责人/今天发生的重大新闻5条
  • 河南送变电建设有限公司网站/舆情报告
  • seo网站页面优化包含/色盲和色弱的区别
  • 网站开发工作量评估/上海网站建设咨询
  • 怎么做装修网站平台/不属于网络推广方法
  • 大浪网站建设/怎么在百度上设置自己的门店
  • wordpress 学院 模板/在seo优化中
  • 手机网站建设 广州/百度搜索引擎的网址是多少
  • 个人博客网站制作图片/上海百度推广优化排名
  • 即墨有做网站的吗/东莞服务好的营销型网站建设
  • 青岛网站建设运营/青岛网站seo服务
  • 医疗网站建设咨询/网络推广需要多少费用
  • 网站设计实训心得/东莞网络科技公司排名
  • 网站开发公司取名/百度竞价推广开户联系方式
  • 国外设计师灵感网站/b2b免费发布网站大全
  • 求免费的那种网站有哪些/长尾关键词爱站
  • 注册了域名之后如何建立一个网站/中文域名的网站
  • wordpress上传大小/二级域名和一级域名优化难度
  • Docker-07.Docker基础-数据卷挂载
  • 第13章 文件输入/输出
  • 6. 平台总线
  • ubuntu apt安装与dpkg安装相互之间的关系
  • 【LeetCode刷题指南】--二叉树的后序遍历,二叉树遍历
  • python匿名函数lambda