Python关键字之global与nonlocal

 更新时间:2022年03月07日 17:11:52   作者:笨鸟先fly  
这篇文章主要为大家详细介绍了Python关键字之global与nonlocal,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

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

总结

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

相关文章

  • 通过Turtle库在Python中绘制一个鼠年福鼠

    通过Turtle库在Python中绘制一个鼠年福鼠

    这篇文章主要介绍了通过Turtle库在Python中绘制一个鼠年福鼠,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • python将YUV420P文件转PNG图片格式的两种方法

    python将YUV420P文件转PNG图片格式的两种方法

    这篇文章主要介绍了python将YUV420P文件转PNG图片格式的两种方法,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2021-01-01
  • AI生成图片Stable Diffusion环境搭建与运行方法

    AI生成图片Stable Diffusion环境搭建与运行方法

    Stable Diffusion是一种基于扩散过程的生成模型,由Ge et al.在2021年提出,该模型利用了随机变量的稳定分布,通过递归地应用扩散过程来生成高质量的图像,这篇文章主要介绍了AI图片生成Stable Diffusion环境搭建与运行,需要的朋友可以参考下
    2023-05-05
  • Anaconda中利用conda创建、激活、删除、添加新环境

    Anaconda中利用conda创建、激活、删除、添加新环境

    在使用Python开发项目或者编写脚本的时候通常需要建立不同版本的Python的虚拟环境,本文主要介绍了Anaconda中利用conda创建、激活、删除、添加新环境,具有一定的参考价值,感兴趣的可以了解一下
    2024-04-04
  • pytorch之scatter_的用法及说明

    pytorch之scatter_的用法及说明

    这篇文章主要介绍了pytorch之scatter_的用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • python的ArgumentParser使用及说明

    python的ArgumentParser使用及说明

    这篇文章主要介绍了python的ArgumentParser使用及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • NumPy进行统计分析

    NumPy进行统计分析

    本文主要介绍了NumPy进行统计分析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • python基础入门之列表(一)

    python基础入门之列表(一)

    在Python中,列表(list)是常用的数据类型。列表由一系列按照特定顺序排列的项(item)组成。
    2021-06-06
  • Python虚拟环境virtualenv是如何使用的

    Python虚拟环境virtualenv是如何使用的

    今天给大家带来的是关于Python虚拟环境的相关知识,文章围绕着Python虚拟环境virtualenv是如何使用的展开,文中有非常详细的解释及代码示例,需要的朋友可以参考下
    2021-06-06
  • Python截图并保存的具体实例

    Python截图并保存的具体实例

    在本篇文章里小编给大家分享了一篇关于Python截图并保存的具体实例,对此有兴趣的朋友们可以参考下。
    2021-01-01

最新评论