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 # 报错!!

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • Python中关键字global和nonlocal的区别详解

    前言 终于下定决心学习Python了.既然从头开始,就需要认认真真. 首先需要说的是,我是初学Python,这篇文章只是用于展示global和nonlocal关键字的区别,是很简单的知识点,如果你已经学过,可以绕道.因为不经常写博客,而且是个Python小白,所以内容有些啰嗦... 两个关键词都用于允许在一个局部作用域中使用外层的变量. global 表示将变量声明为全局变量 nonlocal 表示将变量声明为外层变量(外层函数的局部变量,而且不能是全局变量) 注意:我使用的是Python3.6

  • 简单了解python关键字global nonlocal区别

    第一,两者的功能不同.global关键字修饰变量后标识该变量是全局变量,对该变量进行修改就是修改全局变量,而nonlocal关键字修饰变量后标识该变量是上一级函数中的局部变量,如果上一级函数中不存在该局部变量,nonlocal位置会发生错误(最上层的函数使用nonlocal修饰变量必定会报错). 第二,两者使用的范围不同.global关键字可以用在任何地方,包括最上层函数中和嵌套函数中,即使之前未定义该变量,global修饰后也可以直接使用,而nonlocal关键字只能用于嵌套函数中,并且外层函

  • Python全局变量global关键字详解

    Python中的变量作用域 一般在函数体外定义的变量成为全局变量,在函数内部定义的变量称为局部变量. 全局变量所有作用域都可用,局部变量只能在本函数可用,变量的使用顺序是,局部变量 > 全局变量, 也就是说:优先使用局部变量 那么问题来了, 如果想在函数内使用全局变量,或改变全局变量的值, 应该怎么做呢? Python全局变量global关键字 为了解决函数内使用全局变量的问题,python增加了global关键字, 利用它的特性, 可以指定变量的作用域. Python全局变量global关键字

  • 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 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语言中的关键字如下表所示 关键字 描述 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

随机推荐