Python nonlocal 与 global 关键字解析
nonlocal
首先,要明确 nonlocal 关键字是定义在闭包里面的。请看以下代码:
x = 0
def outer():x = 1def inner():x = 2print("inner:", x)inner()print("outer:", x)outer()
print("global:", x)
结果
# inner: 2
# outer: 1
# global: 0
现在,在闭包里面加入nonlocal关键字进行声明:
x = 0
def outer():x = 1def inner():nonlocal xx = 2print("inner:", x)inner()print("outer:", x)outer()
print("global:", x)
结果
# inner: 2
# outer: 2
# global: 0
看到区别了么?这是一个函数里面再嵌套了一个函数。当使用 nonlocal 时,就声明了该变量不只在嵌套函数inner()里面
才有效, 而是在整个大函数里面都有效。
global
还是一样,看一个例子:
x = 0
def outer():x = 1def inner():global xx = 2print("inner:", x)inner()print("outer:", x)outer()
print("global:", x)
结果
# inner: 2
# outer: 1
# global: 2
global 是对整个环境下的变量起作用,而不是对函数类的变量起作用。
转载于:https://www.cnblogs.com/brad1994/p/6533267.html
Python nonlocal 与 global 关键字解析相关推荐
- global在python_在Python中使用“global”关键字
在Python中使用"global"关键字 我从阅读文档中了解到,Python有一个单独的函数命名空间,如果我想在该函数中使用全局变量,我需要使用global. 我正在使用Pyth ...
- Python中的global关键字的用法
Python中的global关键字的用法 global的英文相比你肯定知道,全球的,总的.那么正Python编程语言中,结合global的中文意思你会更加的理解这个关键字的用法.我们使用global关 ...
- Python 全局变量与global关键字
Python 全局变量与global关键字 在Python的变量使用中,经常会遇到这样的错误: local variable 'a' referenced before assignment 它的 ...
- nonlocal和global关键字
回顾: 1. Python的函数的概述函数定义函数调用2. Python函数中参数的类型和返回值形参和实参形参类型:普通参数: 实参的传递的顺序和个数和形参一直关键字参数: 指定传递的实参被特定形参接 ...
- python nonlocal 与 global 详解
变量作用域问题 case1 通常在函数之外无法访问到函数内的变量 def f1():a=1 print(a) NameError: name 'a' is not defined case2 但函数内 ...
- Python全局变量及Global关键字( Global variable in Python)
目录 1. Python全局变量 2. 简单的示例 3. 全局变量的有效作用范围 4. 在函数内部修改变量 5. global关键字 6. 跨模块的情况 1. Python全局变量 Python全局变 ...
- python中的global是什么意思_Python中的global关键字,你了解吗?
前言 今天来了解下 Python 中的 global 关键字. Python变量的作用域 实战案例演示之前,先要了解下 Python 的作用域. 曾经在闭包的文章 <python小课堂26 - ...
- python中nonlocal是什么意思_Python中关键字nonlocal和global的声明与解析
请问Python3的关键字有哪些 python一共有35个关键字,在python37版本,新添加了async和await,可以通过import keyword借用keyword模块中的kwlist方法 ...
- python local global_python global与nonlocal关键字
函数作用域 a = 1 print("函数outer调用之前全局变量a的内存地址: ", a , id(a)) def outer(): a = 2 print("函数o ...
最新文章
- PLSQL程序编写杂烦数据表信息编写批量排版
- 微信,QQ这类IM app怎么做——谈谈Websocket
- php 上传多文件_php 多文件上传的实现实例
- java正则获取数字_Java通过正则表达式获取字符串中数字的方法示例
- 金九银十,年轻人跳槽时,尽量不要选择这三类得不偿失的公司
- rust游戏亮度怎么调亮点_之前用Rust写的扫雷小游戏
- 服务器安全设置篇(珍藏补充版中)
- 格力手机色界G0245D-Root-最简指南
- 微信小程序-婚礼邀请函页面
- 视频分辨率QCIF、CIF、2CIF、4CIF,D1~D5
- 旅游行业的手机App Top5
- 浅谈TPM设备管理系统、推行要素和目的
- 形容java工作者的句子_一些形容工作态度的句子
- Python的mpl_finance模块从2020年已经提醒弃用,新mplfinance模块详解(二)
- TW6869 drivers porting for freescaleandroid
- 萌翻全场!硕士爸爸怀抱1岁萌娃参加毕业典礼:带他提前20年体验毕业
- 动态规划-背包问题、兑换零钱问题、旅行商问题
- 基于Android的校园一卡通App平台
- 用vue2写的开发者在线简历导出
- HTML学生个人网站作业设计:动漫网站设计——斗破苍穹动漫(6页) HTML+CSS+JavaScript 简单DIV布局个人介绍网页模板代码 DW学生个人网站制作成品下载
热门文章
- JAVA子类调用父类构造方法
- MySQL新建用户,授权,删去用户,修改密码操作
- 不能显示隐藏文件的问题
- boost::filesystem::directory_iterator() 出现段错误 Sementation fault
- python yield理解_Python3 中 Yield 理解与使用
- linux命令行学习游戏,如何在Linux命令行中下载GOG游戏
- linux3.10高端内存,Linux内存管理之高端内存映射
- 圣经 英文有声 android,英文有声+Epub Foundation Series 7部 Isaac Asimov - Audiobook
- python画数学函数_Python 绘制你想要的数学函数图形 !
- 负载均衡轮询算法和服务器性能,负载均衡算法