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

Pycharm(九)函数的闭包、装饰器

目录

一、函数参数

二、闭包

三、装饰器


一、函数参数

def func01():print("func01 shows as follows")
func01()
# 函数名存放的是函数所在空间的地址
print(func01)#<function func01 at 0x0000023BA9FC04A0>
func02=func01
print(func02)#<function func01 at 0x0000023BA9FC04A0>
func02()
print('-'*30)def foo(func):func()
foo(func01)

这段代码的运行结果如下:

可以得到这样的结论;

函数名存放的是函数所在空间地址;

函数名()执行函数名所存放空间地址中的代码。

func01 =func02函数名可以像普通变量一样赋值,func01() 等价于 func02(),也可以作为参数去使用。

二、闭包

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

闭包

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

        作用:闭包可以保存函数内部的变量,不会随着函数的调用完而销毁。

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

如下代码:
 

'''
闭包定义:在函数嵌套的前提下,内部函数使用了外部函数的变量,并且外部函数返回了内部函数,我们把这个使用外部函数变量的内部函数称为闭包。作用:闭包可以保存函数内部的变量,不会随着函数的调用完而销毁。构成条件:①在函数嵌套(函数里面再定义函数)的前提下②内部函数使用了外部函数的变量(还包括外部函数的参数)③外部函数返回了内部函数
'''
#1.在函数嵌套(函数里面再定义函数)的前提下
def func_out(num1):#2.内部函数使用了外部函数的变量(还包括外部函数的参数)def func_inner(num2):num=num1+num2print(f'num现在的值:{num}')#3.外部函数返回了内部函数return func_inner
f=func_out(10)
f(1)
f(2)

运行结果:

解释:

结论:闭包可以对外部函数的变量进行保存。

闭包的使用:

def config_name(name):def say_info(info):print(name+':',info)return say_info
Tom=config_name('Tom')
Tom('你好!')
Tom('你吃饭了吗?')

 

闭包不仅可以保存外部函数的变量,还可以提高代码的复用性。

相关文章:

  • compat-openssl10和libnsl下载安装
  • Java高效合并Excel报表实战:GcExcel让数据处理更简单
  • 靠华为脱胎换骨,但赛力斯仍需要Plan B
  • MySQL访问权限授权问题
  • 二分查找、分块查找、冒泡排序、选择排序、插入排序、快速排序
  • SPL 量化 序言
  • 【FFmpeg从入门到精通】第四章-FFmpeg转码
  • 性能比拼: Nginx vs Caddy
  • 乾元通渠道商中标舟山市自然灾害应急能力提升工程基层防灾项目
  • VTK知识学习(53)- 交互与Widget(四)
  • Kubernetes 创建 Jenkins 实现 CICD 配置指南
  • 5.2.1 CallerMemberName的使用
  • 02-HTML结构
  • 在线查看【免费】vsd, vsdx/wmf, emf /psd, eps/pdf ,ofd, rtf/xmind/bpmn/eml/epub文件格式网
  • 驱动开发硬核特训 · Day 16:字符设备驱动模型与实战注册流程
  • 基于STC89C52RC和8X8点阵屏、独立按键的匹配消除类小游戏
  • unity3d实现物体闪烁
  • Discuz论坛网站忘记管理员密码进不去管理中心怎么办?怎么改管理员密码?
  • 45.[前端开发-JavaScript高级]Day10-迭代器-生成器
  • Git创建空分支并推送到远程仓库
  • 夜读丨一位医生0点后的朋友圈
  • 成都市政府秘书长王忠诚调任遂宁市委副书记
  • 《“四有”好老师系列丛书》发布,由顾明远总主编
  • “明制美学”的舞台呈现,陆川导演首部舞剧《天工开物》
  • 重点并不在于设计更聪明的机器,而在于开发宇宙技术的多样性
  • 石黑一雄《莫失莫忘》与“克隆人”:殖民地的记忆与行动