简单了解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
  • asp之家 网络编程 m.aspxhome.com