python中global 和 nonlocal 的作用域
python引用变量的顺序: 当前作用域局部变量->外层作用域变量->当前模块中的全局变量->python内置变量 。
global
一、在局部如果声明全局变量,可以对全局变量修改,否则不行
gcount = 0
def global_test():
....global gcount
....gcount+=1
....print (gcount)
global_test()
正确输出 1
————————————————————————————
gcount = 0
def global_test():
....gcount+=1
....print (gcount)
global_test()
UnboundLocalError: local variable 'gcount' referenced before assignment
如果函数内要对全局变量修改,需要使用关键字global
二、 在局部如果不声明全局变量,并且不修改全局变量。则可以正常使用全局变量:
gcount = 0
def global_test():
....print (gcount)
global_test()
如果在局部不修改全局变量,程序正确输出 0
三、nonlocal关键字用来在函数或其他作用域中使用外层(非全局)变量。
def make_counter():
....count = 0
....def counter():
........nonlocal count #使用外层的count变量
........count += 1
........return count
........return counter
def make_counter_test():
....mc = make_counter()
....print(mc())
....print(mc())
....print(mc())
make_counter_test()
输出:
1
2
3
转载于:https://blog.51cto.com/13587169/2112424
python中global 和 nonlocal 的作用域相关推荐
- python中global和nonlocal用法的详细说明
1.前言 第一,两者的功能不同.global关键字修饰变量后标识该变量是全局变量,对该变量进行修改就是修改全局变量,而nonlocal关键字修饰变量后标识该变量是上一级函数中的局部变量,如果上一级函数 ...
- python中global和def_Python中 Global和Nonlocal的用法详解
nonlocal 和 global 也很容易混淆.简单记录下自己的理解. 解释 global 总之一句话,作用域是全局的,就是会修改这个变量对应地址的值. global 语句是一个声明,它适用于整个当 ...
- Python关键字 global与nonlocal
Python关键字 global与nonlocal global def test():#1函数内如果没定义x,则x默认为全局变量print(x) # 输出 global v#2函数内如果定义x,则x ...
- Python中global和nolocal作用域的理解
原创:https://www.cnblogs.com/z360519549/p/5172020.html python引用变量的顺序: 当前作用域局部变量-> 闭包函数外的函数中变量->当 ...
- 深入解析Python中函数的参数与作用域
传递参数 函数传递参数时的一些简要的关键点: 参数的传递是通过自动将对象赋值给本地变量名来实现的.所有的参数实际上都是通过指针进行传递的,作为参数被传递的对象从来不自动拷贝. 对于numbers,St ...
- python中global的用法
python变量的作用域: Local 局部作用域 Enclosing 闭包函数外的函数中 Global全局作用域 查找规则:以Local->Enclosing ->Global规则查找, ...
- python中global的使用_PYTHON中使用GLOBAL引发的一系列问题
In [96]: def x(): b = 12 def y(): global a,b a = 1 b = 2 y() print "b =",b ....: In [97]: ...
- python中global什么意思_python中的global关键字的使用方法
摘要 global 标志实际上是为了提示 python 解释器,表明被其修饰的变量是全局变量.这样解释器就可以从当前空间 (current scope) 中读写相应变量了. Python 的全局变量是 ...
- python中global的意思_python中global是什么意思?
上篇小编介绍了python中locals函数的作用(https://www.py.cn/jishu/jichu/22264.html),它可以更新并以字典形式返回当前全部局部变量,python中另一个 ...
最新文章
- 中职计算机应用基础每章知识点,[定稿]中职计算机应用基础教案_1-5章V3.1
- 爬虫9-淘宝商品信息定向爬虫
- python【Matlibplot绘图库】曲线样式的两种设置方式(看不懂你来打我)
- 最后两周!60万奖金AI攻防赛进入冲刺(附baseline代码及实操)
- Elasticsearch搜索引擎:ES的segment段合并原理
- 带有帐号密码验证的apche服务器文件下载
- collections 模块:更多数据结构
- opatch java.lang.OutOfMemoryError:Java heap space错误一例
- 高位在前低位在后是啥意思_两年前满仓买的一支股,买时28,现在8块多点,股民怎么处理好?...
- 人工智能为什么要从本科生抓起?
- 【转】JAVA成长之路
- 拓端tecdat|matlab递归神经网络RNN实现:桨距控制控制风力发电机组研究
- 数据库的点数据根据行政区shp来进行行政区处理,python定时器实现
- 【免费】前端设计师必须知晓的网站(1)
- 精准测分:基于函数调用关系链的用例消振算法(上帝视角)
- sublime常用主题---
- Suspending console(s) (use no_console_suspend to debug) android4.0 OMAP4460
- vue如何制作自定义表单校验样式
- SendGrid之WebHook的使用【Java】
- android无法接收短信广播,Android BroadcastReceiver接收收到短信的广播
热门文章
- 均匀白噪声的定义及特点_噪声的物理本质是什么?
- 没有运行 spring_Spring事务的传播行为案例分析
- linux 7 pxe,CentOS 7.6 PXE方式安装和配置
- a73*2+a53*2指的是什么_什么言四字词
- python二进制文件的读取与写入可以分别使用什么方法_用python实现读写文件常见操作方式...
- python两个数相加时_两数相加 leetcode Python
- aspose 换行写_aspose.word 换行符 aspose.words换行符
- amp 调用链_调用链选型之Zipkin,Pinpoint,SkyWalking,CAT
- HTML基础-张晨光-专题视频课程
- 跟着迪哥学python 经管之家_跟着迪哥学Python数据分析与机器学习实战