博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 中 global、nonlocal的使用
阅读量:4886 次
发布时间:2019-06-11

本文共 822 字,大约阅读时间需要 2 分钟。

1.在学习python过程中很重要的一点需要记住:如果在函数内部定义了跟全局变量同名的变量,那么该变量将是局部变量,而全局变量的引用在该函数范围内将失效。

x = 9def a():    x = 10    print x   #x在此处是局部变量。 a()    #10,
x =9 def b():    x +=1    print x #x在此处是局部变量,全局变量的引用失效,所以会报变量在使用前没有赋值的错误。b()  #UnboundLocalError: local variable 'x' referenced before assignment

2. 使用global关键字,将函数内部的变量声明为全局变量。

X=88def a():    global X    X +=1    print Xa() #89
X=88def b():    global Y    Y +=X    print Yb() #UnboundLocalError: local variable 'state' referenced before assignment
def b():    global Y    Y = 9    print Yb() # 9

即,全局变量也可以在函数内部声明。

3.nonlocal关键字用来在函数或其他作用域中使用外层(非全局)变量 (python 3.0 添加)

def make_counter():    count = 0    def counter():        nonlocal count        count += 1        return count    return counter

 nonlocal 必须声明在外一层的def中,其他任何地方将会报错。

转载于:https://www.cnblogs.com/kfx2007/p/3520252.html

你可能感兴趣的文章
httpclient文件下载
查看>>
WEB安全学习二、注入工具 sqlmap的使用
查看>>
自己收藏的一些网址
查看>>
ZT UML 类与类之间的关系
查看>>
SQL Server 索引和视图
查看>>
Codeforces Round #296 (Div. 2) A. Playing with Paper
查看>>
windows-install-python-and-sphinx(*.rst file)
查看>>
UML各种图总结-精华
查看>>
jquery $.each()用法
查看>>
我的软考之路(四)——数据结构与算法(2)之树与二叉树
查看>>
Effective C++_笔记_条款02_尽量以const、enum、inline替换#define
查看>>
spring-hadoop之操作hbase
查看>>
dom 解析 XML
查看>>
php date
查看>>
django模板的使用
查看>>
cocos2dx内存管理
查看>>
error: variably modified 'table' at file scope
查看>>
sqlite 下载地址
查看>>
ViewPager的addOnPageChangeListener方法详解
查看>>
一个很好用的GD图像处理类image.class.php,推荐给大家
查看>>