global & nonlocal
2024-10-18 22:27:55
name = "A" def test(): name = "B" def test2(): global name # global 指的是拿到的是全局的变量,直接改变全局变量 name = "C" test2() print("1",name) # ===>首先使用局部变量 print("2",name) # ===>此处使用全局变量 test() # ===>此处使用局部变量 并将全局变量重新赋值 print("3",name) # ===>此处使用全局变量(上一步的函数已经将全局变量对应的值修改)
2 A 1 B 3 C
def test(): name = "B" def test2(): nonlocal name # nonlocal 指的是拿到的是上一层(作用域)的变量 name = "C" test2() print("1",name) # ===>首先使用局部变量 print("2",name) # ===>此处使用全局变量 test() # ===>将局部变量重新赋值 并使用局部变量 print("3",name)
2 A 1 C 3 A
小结:
- python引用变量的顺序: 当前作用域局部变量->外层作用域变量->当前模块中的全局变量->python内置变量
- global name 用来声明name是全局变量 然后可对name赋值进行修改
- nonlocal name 用来声明name是上一层变量 然后可对name赋值进行修改
最新文章
- java 22 - 16 多线程之生产者和消费者的问题
- 用jQuery解析复杂的xml结构文件
- WPF中的DataTemplate
- bzoj1079: [SCOI2008]着色方案
- Kruskal算法构造最小生成树
- http发送post请求
- tp5引入第三方类库
- 网络基础一 交换机 路由器 OSI7层模型
- Java 接口基础详解
- <;<;精通iOS开发>;>;第14章例子代码小缺陷的修复
- Python设计模式 - UML - 交互概述图(Interaction Overview Diagram)
- 安装PyQt5时缺少designer.exe的解决办法
- vue分页组件二次封装---每页请求特定数据
- (贪心) nyoj1036-非洲小孩
- 使用shell脚本定时采集日志数据到hdfs分布式文件系统
- node.js 笔记
- Python3基础 list reverse 反转列表
- [Writeup]奇怪的单点音
- 通过网址request到response经历的过程
- 高性能JavaScript(算法和流程控制)
热门文章
- UVa 10250 The Other Two Trees
- 戏(细)说Executor框架线程池任务执行全过程(上)
- ubuntu搭建DNS
- MVC+Ef项目(3) 抽象数据库访问层的统一入口;EF上下文线程内唯一
- oraclede chuangjian yu dajian(zhuan)
- 使用了BeanUtils的简单操作
- 20160203.CCPP体系详解(0013天)
- 20160122.CCPP详解体系(0001天)
- *ecshop 限制文章帮助文章显示条数
- (六)6.8 Neurons Networks implements of PCA ZCA and whitening