python global和nonlocal用法解析

作者:一起来学python 时间:2022-05-17 02:56:17 

这篇文章主要介绍了python global和nonlocal用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

◆global和nonlocal是Python的两个重要变量作用域关键字

1.global用在全局变量,应用场景:
变量定义在函数外部的时候,如果函数里面想改变这个全局变量的值,需要在当前的引用函数里面重新定义一个变量 并用关键字global修饰。

例如:


a=1
def b():
 a+=1
 print(a)
b()

用ide写完这段代码的时候,还没运行就会报红线提示错误,运行之后产生错误,错误内容为:UnboundLocalError: local variable 'a' referenced before assignment。

解决方案:函数中重新声明变量并加修饰符global修改:


#!/usr/bin/env python
# encoding: utf-8
a=1
def b():
 global a
 a+=1
 print(a)
b()

2.nonlocal非全局变量,应用场景:

在函数的函数里面使用函数的变量。表达的可能有点混乱,看代码就知道了


#!/usr/bin/env python
# encoding: utf-8
def b():
 num2=1
 def c():
  nonlocal num2#为了修改非全局变量
  num2+=2
  print(num2)
 return c
b()()

3.综合应用


#!/usr/bin/env python
# encoding: utf-8
gcount = 0

def global_test():
 global gcount
 s=0
 def g():
   nonlocal s
   s+=2
   print(s)
 return g
 gcount+=1
 print (gcount)
global_test()()

来源:https://www.cnblogs.com/c-x-a/p/8854145.html

标签:python,global,nonlocal
0
投稿

猜你喜欢

  • python的继承知识点总结

    2022-12-10 11:21:28
  • Python实现连接两个无规则列表后删除重复元素并升序排序的方法

    2021-05-23 10:35:54
  • MySQL优化之数据表的处理

    2008-12-22 14:45:00
  • Python中int()函数的用法浅析

    2022-08-18 09:45:12
  • 教你用Python写一个植物大战僵尸小游戏

    2021-07-19 22:59:37
  • 关于Flask 视图介绍

    2022-10-21 15:07:34
  • 对Python中一维向量和一维向量转置相乘的方法详解

    2022-01-24 12:44:14
  • 我们需要的是怎样的分页?

    2007-09-28 20:24:00
  • Python解释执行原理分析

    2022-12-13 22:11:54
  • 如何提示用户打开Cookie?

    2010-06-07 20:53:00
  • fckeditor编辑器在php中的配置方法

    2023-10-14 14:26:52
  • AJAX的jQuery实现入门(一)

    2008-05-01 12:55:00
  • python求最大连续子数组的和

    2022-05-12 07:23:24
  • python简单猜数游戏实例

    2023-10-05 21:31:55
  • python中函数默认值使用注意点详解

    2021-01-26 12:36:44
  • python机器学习案例教程——K最近邻算法的实现

    2021-12-01 14:36:51
  • 如何利用python的tkinter实现一个简单的计算器

    2021-09-12 09:19:52
  • ASP分页类(支持多风格变换)

    2011-04-08 10:39:00
  • python为Django项目上的每个应用程序创建不同的自定义404页面(最佳答案)

    2022-07-26 19:08:11
  • asp下过滤非法的SQL字符的函数代码

    2011-03-03 11:23:00
  • asp之家 网络编程 m.aspxhome.com