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" # 全局变量
如何在函数内修改全局变量呢?[利用关键字global]
def test(): #在函数内先声明全局变量, global x # 即x = "global v",注意global修饰变量时不能直接赋值,如 global x =‘abc' 报错! # 修改全局变量 x = 'modified global v' x = "global v" # 全局变量 print(x) # global v test() print(x) # modified global v
nonloacl
nonlocal只能在嵌套函数中使用,用于标识嵌套函数中的变量是包含该嵌套函数的函数中的同名变量,在嵌套函数中修改变量会影响函数中的变量。
def func(): # 函数 x = 'loval v' def ifunc(): # 嵌套函数 nonlocal x # x = 'loval v'
如果在函数中使用global修饰了变量,那么在嵌套函数中用nonlocal修饰同名变量会发生报错,因为nonlocal表示该变量在函数中已经定义,但检查时因为同名变量被global修饰为全局变量,所以不存在同名的局部变量,从而导致错误
x = 'global v' # 全局变量 def func(): # 函数 global x def ifunc(): # 嵌套函数 nonlocal x # 报错!!
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!
相关推荐
-
Python中关键字global和nonlocal的区别详解
前言 终于下定决心学习Python了.既然从头开始,就需要认认真真. 首先需要说的是,我是初学Python,这篇文章只是用于展示global和nonlocal关键字的区别,是很简单的知识点,如果你已经学过,可以绕道.因为不经常写博客,而且是个Python小白,所以内容有些啰嗦... 两个关键词都用于允许在一个局部作用域中使用外层的变量. global 表示将变量声明为全局变量 nonlocal 表示将变量声明为外层变量(外层函数的局部变量,而且不能是全局变量) 注意:我使用的是Python3.6
-
简单了解python关键字global nonlocal区别
第一,两者的功能不同.global关键字修饰变量后标识该变量是全局变量,对该变量进行修改就是修改全局变量,而nonlocal关键字修饰变量后标识该变量是上一级函数中的局部变量,如果上一级函数中不存在该局部变量,nonlocal位置会发生错误(最上层的函数使用nonlocal修饰变量必定会报错). 第二,两者使用的范围不同.global关键字可以用在任何地方,包括最上层函数中和嵌套函数中,即使之前未定义该变量,global修饰后也可以直接使用,而nonlocal关键字只能用于嵌套函数中,并且外层函
-
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关键字详解
Python中的变量作用域 一般在函数体外定义的变量成为全局变量,在函数内部定义的变量称为局部变量. 全局变量所有作用域都可用,局部变量只能在本函数可用,变量的使用顺序是,局部变量 > 全局变量, 也就是说:优先使用局部变量 那么问题来了, 如果想在函数内使用全局变量,或改变全局变量的值, 应该怎么做呢? Python全局变量global关键字 为了解决函数内使用全局变量的问题,python增加了global关键字, 利用它的特性, 可以指定变量的作用域. Python全局变量global关键字
-
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 nonlocal关键字 与 global 关键字解析
目录 1.nonlocal 2.global python引用变量的顺序: 当前作用域局部变量->外层作用域变量->当前模块中的全局变量->python内置变量 1.nonlocal nonlocal关键字用来在函数或其他作用域中使用外层(非全局)变量. 首先:要明确 nonlocal 关键字是定义在闭包里面的. 请看以下代码: x = 0 def outer(): x = 1 def inner(): x = 2 print("
-
Python nonlocal关键字 与 global 关键字解析
目录 1.nonlocal 2.global python引用变量的顺序: 当前作用域局部变量->外层作用域变量->当前模块中的全局变量->python内置变量 1.nonlocal nonlocal关键字用来在函数或其他作用域中使用外层(非全局)变量. 首先:要明确 nonlocal 关键字是定义在闭包里面的. 请看以下代码: x = 0 def outer(): x = 1 def inner(): x = 2 print("
-
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用法解析
这篇文章主要介绍了python global和nonlocal用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 ◆global和nonlocal是Python的两个重要变量作用域关键字 1.global用在全局变量,应用场景: 变量定义在函数外部的时候,如果函数里面想改变这个全局变量的值,需要在当前的引用函数里面重新定义一个变量 并用关键字global修饰. 例如: a=1 def b(): a+=1 print(a) b() 用ide写
-
Python中 Global和Nonlocal的用法详解
nonlocal 和 global 也很容易混淆.简单记录下自己的理解. 解释 global 总之一句话,作用域是全局的,就是会修改这个变量对应地址的值. global 语句是一个声明,它适用于整个当前代码块. 这意味着列出的标识符将被解释为全局变量. 尽管自由变量可能指的是全局变量而不被声明为全局变量. global 语句中列出的名称不得用于该全局语句之前的文本代码块中. global 语句中列出的名称不能定义为形式参数,也不能在 for 循环控制目标. class 定义.函数定义. impo
-
一篇文章弄懂Python关键字、标识符和变量
目录 前言
-
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
随机推荐
- Nodejs的express使用教程
- Python比较两个图片相似度的方法
- MySQL中配置文件my.cnf因权限问题导致无法启动的解决方法
- JavaScript图片放大技术(放大镜)实现代码分享
- jQuery的一些注意
- 详解angular 中的自定义指令之详解API
- nodejs 图片预览和上传的示例代码
- 删除SAM文件,清除Administrator账号密码
- php解析http获取的json字符串变量总是空白null
- python根据出生日期返回年龄的方法
- PHP生成Flash动画的实现代码
- javascript 弹出层居中效果的制作
- ie和firefox不兼容的解决方法集合
- jQuery学习笔记之 Ajax操作篇(一) - 数据加载
- ASP.NET jQuery 实例6 (实现CheckBoxList成员全选或全取消)
- jQuery中width()方法用法实例
- 基于javascript编写简单日历
- bootstrap table方法之expandRow-collapseRow展开或关闭当前行数据
- golang json性能分析详解
- java字符串遍历以及统计字符串中各类字符