简单了解python关键字global nonlocal区别
作者:python学习者0 时间:2023-07-26 15:47:07
第一,两者的功能不同。global关键字修饰变量后标识该变量是全局变量,对该变量进行修改就是修改全局变量,而nonlocal关键字修饰变量后标识该变量是上一级函数中的局部变量,如果上一级函数中不存在该局部变量,nonlocal位置会发生错误(最上层的函数使用nonlocal修饰变量必定会报错)。
第二,两者使用的范围不同。global关键字可以用在任何地方,包括最上层函数中和嵌套函数中,即使之前未定义该变量,global修饰后也可以直接使用,而nonlocal关键字只能用于嵌套函数中,并且外层函数中定义了相应的局部变量,否则会发生错误(见第一)。
正常的
a = 1
def func():
a = 10
print(a)
func()
print(a)
运行结果:
10
1
使用global
a = 1
def func():
global a
a = 10
print(a)
func()
print(a)
运行结果:
10
10
使用nonlocal
a = 1
def func():
nonlocal a
a = 10
print(a)
func()
print(a)
运行结果:
10
0
来源:https://www.cnblogs.com/xxpythonxx/p/13448976.html
标签:python,关键字,global,nonlocal
0
投稿
猜你喜欢
element跨分页操作选择详解
2023-07-02 16:38:47
详解js加减乘除精确计算
2024-04-18 10:47:10
Go语言使用defer+recover解决panic导致程序崩溃的问题
2024-01-30 06:29:18
Python中集合创建与使用详解
2022-04-30 05:29:42
全面分析Python的优点和缺点
2023-11-09 11:00:07
Python面向对象程序设计类的多态用法详解
2021-05-28 20:21:29
浅谈django model postgres的json字段编码问题
2021-12-21 13:55:12
Python pickle类库介绍(对象序列化和反序列化)
2021-12-31 00:28:33
使用Python对MySQL数据操作
2024-01-16 16:04:26
Django学习笔记之ORM基础教程
2022-07-25 22:59:07
通过Python 获取Android设备信息的轻量级框架
2021-08-18 21:41:00
用css+Javascript实现扫描线效果图片
2007-11-08 19:12:00
微信小程序应用号开发体验
2022-03-12 12:56:02
客户体验
2008-12-11 13:58:00
python BlockingScheduler定时任务及其他方式的实现
2022-02-13 17:32:25
Python实现单项链表的最全教程
2021-12-21 09:45:26
重新restore了mysql到另一台机器上后mysql 编码问题报错
2024-01-24 05:10:41
火狐浏览器:浏览数据新方式(附模拟图)[译]
2009-04-23 10:51:00
javascript 获取链接文件地址中第一个斜线内的正则表达式
2024-02-25 07:53:28
ASP实例:幻灯片新闻代码
2008-11-21 17:40:00