#闭包
def funA():x=880def funB():print(x)funB()
funA()#880
'''
内置函数不能在外面调用
有没有什么办法不通过funA函数来调用funB呢?
在funA函数中将funB作为函数值返回即可
'''
def funA():x=880def funB():print(x)return funB#注意将函数作为返回值或者参数只需写名字即可,不需要小括号
#函数只有在定义和调用的时候才会用到小括号
funA()()#880,相当于调用了funB
#funA()表示调用funA(),则returnfunB在加个小括号相当于funB(),这就调用funB了
funny=funA()#funA得到的是funB的引用
funny()#880
###########################################################
'''
闭包也叫工程函数
'''
def pow(exp):def exp_of(base):return base**exp#base^exp幂运算return exp_of#返回内部函数
square=pow(2)
cube=pow(3)
print(square(2))#4
print(square(5))#25
print(cube(2))#8
print(cube(5))#125
def outer():x=0y=0def inner(x1,y1):nonlocal x,yx+=x1y+=y1print(f'现在,x={x},y={y}')#格式化输出,不懂可看博主格式化输出这篇return inner#返回内部函数
move=outer()
move(1,2)#现在,x=1,y=2
move(-2,2)#现在,x=-1,y=4,带记忆

Python入门--闭包,工程函数相关推荐

  1. Python入门篇-匿名函数

    Python入门篇-匿名函数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.匿名函数概述 1>.什么是匿名函数 匿名,即没有名字 匿名函数,即没有名字的函数 2>. ...

  2. Python入门篇-生成器函数

    Python入门篇-生成器函数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.生成器概述 1>.生成器generator 生成器指的是生成器对象,可以由生成器表达式得到, ...

  3. python入门系列:函数

    引言 将一段代码集中到一块,起一个名字,下次可以根据这个名字再次使用这个代码块. 作用: 方便代码重用 分解任务,简化程序逻辑 使代码更加模块化 函数的参数 所有的传参方式都是传引用,注意列表做参数和 ...

  4. 【廖雪峰python入门笔记】函数

    1. 函数 我们知道圆的面积计算公式为: S = πr² 当我们知道半径r的值时,就可以根据公式计算出面积.假设我们需要计算3个不同大小的圆的面积: r1 = 12.34 r2 = 9.08 r3 = ...

  5. Python入门5:函数/文件

    文章目录 1.函数 1.1函数的引入 1.2变量的作用域 1.3参数传递 1.4常见的四类形参 1.5匿名函数 1.6匿名函数对应的leecode题目 1.7递归函数 1.8递归实现fib数列 2.文 ...

  6. Python入门之经典函数实例——第1关:递归函数 - 汉诺塔的魅力

    任务描述 在Python函数内部,我们可以去调用其他函数.所以如果一个函数在内部调用自身,这个函数我们就称为递归函数.本关我们将以汉诺塔的例子来感受递归函数的方法与应用. 汉诺塔问题源于印度一个古老传 ...

  7. Python入门学习之函数

    下面是自定义函数的一些方法和实现 >>> def power(x): ... return x*x ... >>> power(7) 49 >>> ...

  8. educoder python入门之基础语法答案-Educoder Python入门之经典函数实例

    题目链接:https://www.educoder.net/tasks/py2izujr935h 第1关:递归函数 - 汉诺塔的魅力 #coding=utf-8 # 输入正整数n n = int(in ...

  9. python入门练习题3(函数)

    1.写函数: 如有以下两个列表 l1 = [...] l2 = [] 第一个列表中的数字无序不重复排列,第二个列表为空列表 需求: 取出第一个列表的最小值 放到第二个列表的首个位置, 取出第一个列表的 ...

最新文章

  1. mysql以及mysql bench安装教程
  2. JZOJ 5977. 【清华2019冬令营模拟12.15】堆
  3. . SQL多条件查询存储过程
  4. ruby继承_Ruby继承
  5. js初步简单的编程代码
  6. spring boot实现WebMvcConfigurer接口定制SpringMvc配置
  7. 如何高效快速地在Linux系统上部署Node.js+Express+MySQL的开发环境(桌面可视化)...
  8. html渲染json的插件,[ json editor] 如何在网页中使用Json editor 插件
  9. MAC下MySQL启动不了怎么办?
  10. Pytorch:目标检测网络-人体关键点检测
  11. iOS 广告SDK总结(一)
  12. WINDOWS下多个桌面切换
  13. QT二进制流方式读写文件
  14. 网站漂浮广告代码收藏
  15. 高新波:异质图像合成与识别
  16. mesh组网和AC+AP组网方式哪种好?
  17. 2019蓝桥杯每周一题第二周之Mineweep(扫雷)
  18. Word通配符选项表大全--Word如何匹配不同字符
  19. 新概念英语第一册(26)
  20. tomcat闪退原因及解决方法

热门文章

  1. java每隔多长时间执行一次_crontab中如何实现每隔多少天执行一次脚本
  2. android md5使用方法,android 使用DigestUtilsmd5加密的方法
  3. python所有软件-这些Python开源软件解决了程序员几乎所有的问题
  4. python下载步骤-python3.8下载及安装步骤详解
  5. python免费教程视频-微软推出 Python 免费在线教程视频
  6. micropython入门指南-【micropython入门指南 】读后感 一
  7. python 菜鸟-Python3 教程
  8. python的第三方库是干什么用的-20个必不可少的Python库也是基本的第三方库
  9. 学python可以做什么职业-python学完之后比较适合哪些职业工作呢?
  10. (产品)为什么知乎live采用分段语音输入而不是实时语音直播