简单了解python关键字global nonlocal区别
第一,两者的功能不同。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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Python动态参数/命名空间/函数嵌套/global和nonlocal
1. 函数的动态参数 1.1 *args 位置参数动态传参 def chi(*food): print("我要吃", food) chi("大米饭", "小米饭") 结果:我要吃 ('大米饭', '小米饭') # 多个参数传递进去. 收到的内容是元组tuple 1.2 **kwargs 关键字参数动态传参 def func(**kwargs): print(kwargs) func(a=1, b=2, c=3) func(a=1, b=2) 结果
-
Python中 Global和Nonlocal的用法详解
nonlocal 和 global 也很容易混淆.简单记录下自己的理解. 解释 global 总之一句话,作用域是全局的,就是会修改这个变量对应地址的值. global 语句是一个声明,它适用于整个当前代码块. 这意味着列出的标识符将被解释为全局变量. 尽管自由变量可能指的是全局变量而不被声明为全局变量. global 语句中列出的名称不得用于该全局语句之前的文本代码块中. global 语句中列出的名称不能定义为形式参数,也不能在 for 循环控制目标. class 定义.函数定义. impo
-
Python中关键字nonlocal和global的声明与解析
一.Python中global与nonlocal 声明 如下代码 a = 10 def foo(): a = 100 执行foo() 结果 a 还是10 函数中对变量的赋值,变量始终绑定到该函数的局部命名空间,使用global 语句可以改变这种行为. >>> a 10 >>> def foo(): ... global a ... a = 100 ... >>> a 10 >>> foo() >>> a 100 解析
-
python global和nonlocal用法解析
这篇文章主要介绍了python global和nonlocal用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 ◆global和nonlocal是Python的两个重要变量作用域关键字 1.global用在全局变量,应用场景: 变量定义在函数外部的时候,如果函数里面想改变这个全局变量的值,需要在当前的引用函数里面重新定义一个变量 并用关键字global修饰. 例如: a=1 def b(): a+=1 print(a) b() 用ide写
-
python中global与nonlocal比较
python引用变量的顺序: 当前作用域局部变量->外层作用域变量->当前模块中的全局变量->python内置变量 一.global global关键字用来在函数或其他局部作用域中使用全局变量.但是如果不修改全局变量也可以不使用global关键字. 复制代码 代码如下: gcount = 0 def global_test(): print (gcount) def global_counter(): global gcount gcount +=1
-
Python中关键字global和nonlocal的区别详解
前言 终于下定决心学习Python了.既然从头开始,就需要认认真真. 首先需要说的是,我是初学Python,这篇文章只是用于展示global和nonlocal关键字的区别,是很简单的知识点,如果你已经学过,可以绕道.因为不经常写博客,而且是个Python小白,所以内容有些啰嗦... 两个关键词都用于允许在一个局部作用域中使用外层的变量. global 表示将变量声明为全局变量 nonlocal 表示将变量声明为外层变量(外层函数的局部变量,而且不能是全局变量) 注意:我使用的是Python3.6
-
简单了解python关键字global nonlocal区别
第一,两者的功能不同.global关键字修饰变量后标识该变量是全局变量,对该变量进行修改就是修改全局变量,而nonlocal关键字修饰变量后标识该变量是上一级函数中的局部变量,如果上一级函数中不存在该局部变量,nonlocal位置会发生错误(最上层的函数使用nonlocal修饰变量必定会报错). 第二,两者使用的范围不同.global关键字可以用在任何地方,包括最上层函数中和嵌套函数中,即使之前未定义该变量,global修饰后也可以直接使用,而nonlocal关键字只能用于嵌套函数中,并且外层函
-
Python关键字之global与nonlocal
目录 Python关键字global与nonlocal global nonloacl 总结 Python关键字 global与nonlocal global def test(): #1函数内如果没定义x,则x默认为全局变量 print(x) # 输出 global v #2函数内如果定义x,则x为局部变量 x = 'local v' # 局部变量 print(x) # 输出 local v x = "global v" # 全局变量 如何在函数内修改全局变量呢?[利用关键字glob
-
Python全局变量关键字global的简单使用
目录 简介: 案例1:全局无法使用局部变量. 案例2:全局变量,任意范围均可使用. 案例3:函数内定义的局部变量 案例4:函数间global关键字的作用 案例5:不同文件模块中的global,注意test6, test7为不同文件. 案例6:不同文件模块中的global,注意test6, test7为不同文件. 附:用global声明多个变量需要用逗号分 结论: 简介: 1.global是Python中的全局变量关键字. 2.全局变量是编程术语中的一种,源自于变量之分. 3.变量分为局部与全局,
-
简单了解python filter、map、reduce的区别
这篇文章主要介绍了简单了解python filter.map.reduce的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 python中有一些非常有趣的函数,面试的时候可能会遇到.今天也来总结一下,不过该类的网上资料也相当多,也没多少干货,只是习惯性将一些容易遗忘的功能进行整理. lambda 为关键字.filter,map,reduce为内置函数. lambda:实现python中单行最小函数. g = lambda x: x * 2
-
简单了解Java关键字throw和throws的区别
这篇文章主要介绍了简单了解Java关键字throw和throws的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 抛出异常有三种形式 throw throws 系统自动抛异常 一.系统自动抛异常 当程序语句出现一些逻辑错误.主义错误或类型转换错误时,系统会自动抛出异常:(举个栗子) public static void main(String[] args) { int a = 5, b =0; System.out.println(5/b
-
Python全局变量global关键字详解
Python中的变量作用域 一般在函数体外定义的变量成为全局变量,在函数内部定义的变量称为局部变量. 全局变量所有作用域都可用,局部变量只能在本函数可用,变量的使用顺序是,局部变量 > 全局变量, 也就是说:优先使用局部变量 那么问题来了, 如果想在函数内使用全局变量,或改变全局变量的值, 应该怎么做呢? Python全局变量global关键字 为了解决函数内使用全局变量的问题,python增加了global关键字, 利用它的特性, 可以指定变量的作用域. Python全局变量global关键字
-
python 关键字与标识符超详细整理
目录 关键字 注意事项 Python中的关键字区分大小写 关键字作为普通标识符使用会报错 标识符 标识符命名规则 关键字 关键字是python语言中一些已经被赋予特定意义的单词.开发程序是,不可以把这些关键字作文变量.函数.类.模块和其他对象的名称来使用.python语言中的关键字如下表所示 关键字 描述 and 逻辑运算符 as 创建别名 assert 用于调试 break 跳出循环 class 定义类 continue 继续循环 def 定义函数 del 删除对象 elif 在条件语句中使用
-
如何查看python关键字
现在我们就来讲讲关键字吧,准备好开始记笔记了吧,俗话说得好,好记性不如烂笔头,记好了喔,经常听大家提起关于Python中关键词有多少个?实际上Python中关键词目前有31个,想要具体查看以及观察个数的方式非常简单,下面就为大家详细介绍. 1.keyword模块进行输出查看 Help on module keyword: NAME keyword - Keywords (from "graminit.c") FILE /usr/lib64/python2.6/keyword.py DE
-
一篇文章弄懂Python关键字、标识符和变量
目录 前言
随机推荐
- thinkphp的CURD和查询方式介绍
- 高性能WEB开发(5) 减少请求,响应的数据量
- MySQL 主主同步配置步骤
- Javascript 计算字符串在localStorage中所占字节数
- VBS正则表达式对象的MultiLine属性
- 放弃 Python 转向 Go语言有人给出了 9 大理由
- 解决中文乱码的几种解决方法(推荐)
- 在Javascript中处理数组之toSource()方法的使用
- js 函数的执行环境和作用域链的深入解析
- java配置数据库连接池的方法步骤
- 批处理程序中的“多线程”处理代码
- jQuery实现下拉菜单(内容为时间)的实时更新及图表的随动更新的方法
- Android 中ListView setOnItemClickListener点击无效原因分析
- 浅析STL中的常用算法
- 探讨java深拷贝
- Java的JSON转换库GSON的基本使用方法示例
- Android优化查询加载大数量的本地相册图片
- 新手架设魔兽单机和局域网服务器教程
- vue实现在表格里,取每行的id的方法
- Python实现返回数组中第i小元素的方法示例