菜鸟学python(03)—— 闭包的两种方法
来源:互联网 发布:新版淘宝怎么联系客服 编辑:程序博客网 时间:2024/05/06 23:42
一、闭包必须满足的标准有:
1.必须有嵌套函数
2.嵌套函数必须引用封闭函数中定义的值
3.内部函数返回变量,外部函数返回嵌套函数
二、什么时候使用:
当嵌套函数引用封闭范围内的值时,就是把内部的东西拿到外部来用
三、下面送上两个例子
1.内部函数打包返回法
#用于用户管理的函数def user(): #用户名(对于user函数这是局部变量,对于modi、add、drop、get函数而言只是一个外部变量) username = '匿名用户' #密码 password = '' #添加用户操作 def add(): print('这是一个添加用户的函数') #修改用户 def modi(): #通知modi函数username不是当前函数的局部变量,也不是全局变量 nonlocal username #修改用户名 username = '史珍香' print('这是一个修改用户的函数') #删除用户 def drop(): print('这是一个删除用户的函数') #查看用户 def get(): #获取用户名 print(username) print('这是一个查询用户的操作') #使用闭包将所有用户管理的函数返回到函数之外 def manage(): return (add,modi,drop,get) #返回值 return manage#调用函数 -> 得到一个包含所有操作的函数func = user()print(func)#调用管理函数methods = func()#接收管理函数中的操作useradd = methods[0]usermodi = methods[1]userdrop = methods[2]userget = methods[3]#操作用户函数#修改用户名usermodi()#获取用户名userget()
2.全局变量进入取出法
#声明小王变量xiaowang = None#地主的家def home(): #全局声明(到别人家认干亲) global xiaowang #局部变量 #钱 money = 100 #狗 dog = '大黄' #猫 cat = '咪咪' #内部函数 #妹妹 def sister(): print('我是地主的小妹妹~') #弟弟 def brother(): print('我是地主的小弟弟~') #小王 打包干爹干妈家的东西 xiaowang = (money,dog,sister)#调用函数home()#访问z小王变量print(xiaowang)#钱qian = xiaowang[0]#狗gou = xiaowang[1]#小妹妹meimei = xiaowang[2]#访问所有带出来的数据print(qian)print(gou)meimei()
注意,方法2不推荐使用,容易污染全局变量空间,导致特定名称的变量产生
阅读全文
0 0
- 菜鸟学python(03)—— 闭包的两种方法
- 菜鸟学 Python-模块、包
- 菜鸟学python(01)—— 汉诺塔递归 理解
- 菜鸟学python(02)—— 基础笔记整理
- 菜鸟学python(04) —— 基础笔记整理
- 菜鸟学python(05)——装饰器
- 菜鸟学Python(一)
- 菜鸟初学android体验之——实现自定义简单标题栏的两种简单方法
- 学python的那些事——初学python之菜鸟的起航
- 菜鸟学SSH(七)——Spring jar包详解
- 菜鸟学SSH(七)——Spring jar包详解
- 菜鸟学SSH(七)——Spring jar包详解
- 菜鸟学Python(8):功能键的读取
- 菜鸟学Python(8):功能键的读取
- 菜鸟学Python(13):讨厌的BOM
- 菜鸟学Python(13):讨厌的BOM
- Python--windows下面给Python添加库包的两种方法
- python数据结构——层次遍历的两种方法
- Java基础 HTTP协议
- 【第1139期】基于Gitlab CI搭建持续集成环境
- Android中Context详解
- CreateJS 学习3 图像拖动
- 软件过程模型
- 菜鸟学python(03)—— 闭包的两种方法
- 架构
- 简易的后台管理页面布局(二)
- gcc常用编译选项
- JS中的JSON对象 定义和取值
- 寻找用kindle的你。。。
- Java基础 tomcat使用和配置
- 安卓之路问题四
- Linux中pxe实现同时安装多台虚拟机