您的位置:首页 > 编程语言 > Python开发

Python 中 global、nonlocal的使用

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

x = 9
def 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=88
def a():
global X
X +=1
print X

a() #89


X=88
def b():
global Y
Y +=X
print Y

b() #UnboundLocalError: local variable 'state' referenced before assignment


def b():
global Y
Y = 9
print Y

b() # 9


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

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

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


nonlocal 必须声明在外一层的def中,其他任何地方将会报错。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: