时间:2021-05-22
第一,两者的功能不同。global关键字修饰变量后标识该变量是全局变量,对该变量进行修改就是修改全局变量,而nonlocal关键字修饰变量后标识该变量是上一级函数中的局部变量,如果上一级函数中不存在该局部变量,nonlocal位置会发生错误(最上层的函数使用nonlocal修饰变量必定会报错)。
第二,两者使用的范围不同。global关键字可以用在任何地方,包括最上层函数中和嵌套函数中,即使之前未定义该变量,global修饰后也可以直接使用,而nonlocal关键字只能用于嵌套函数中,并且外层函数中定义了相应的局部变量,否则会发生错误(见第一)。
正常的
a = 1def func(): a = 10 print(a)func()print(a)运行结果:
10
1
使用global
a = 1def func(): global a a = 10 print(a)func()print(a)运行结果:
10
10
使用nonlocal
a = 1def func(): nonlocal a a = 10 print(a)func()print(a)运行结果:
10
0
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
最近刚好有朋友遇到个global相关的问题,这里简单学习一下global关键字的用法。想要更好的了解global关键字,首先要熟悉python的全局变量与局部变
前言终于下定决心学习Python了。既然从头开始,就需要认认真真。首先需要说的是,我是初学Python,这篇文章只是用于展示global和nonlocal关键字
一、Python中global与nonlocal声明如下代码a=10deffoo():a=100执行foo()结果a还是10函数中对变量的赋值,变量始终绑定到该
nonlocal和global也很容易混淆。简单记录下自己的理解。解释global总之一句话,作用域是全局的,就是会修改这个变量对应地址的值。global语句是
本文以简单示例分析了python中关键字is与==的区别,供大家参考一下。首先说明一下Python学习中几个相关的小知识点。Python中的对象包含三要素:id