Published

六 21 九月 2013

←Home

python全局变量

虽说简单,但有次写代码时候没注意,一不小心也浪费了我很多时间,现总结如下

python全局变量的使用: case 1:

a = 0
def test():
    print "test() a : " , a
    b = a+1
    print "test() b : " , b 
test()
print "a : " , a 

结果是:

test() a : 0
test() b : 1 
a : 0

case 2:

a = 0 
def test():
    print "test() a : " , a 
    a = 1 
    print "test() change a : " , a
test() 
print "a : " , a 

结果是:

会报错:UnboundLocalError: local variable 'a' referenced before assignment

结论(case 1,case 2): 当内部变量与外部变量重名,并且要给变量赋值是不可行的。但是引用其值是可以的。 case 3:

a = 0 
def test(): 
    a = 1 
    print "test() a : " , a
test() 
print "a : " , a 

结果是:

test() a : 1 
a : 0

case 4

a = 0 
def test(): 
    global a 
    a = 1 
    print "test() a : " , a
test() 
print "a : " , a 

结果是:

test() a : 1 
a : 1

结论(case 3, case4) : 当内部变量与外部变量重名,它们的操作是互不影响的。如果要统一变量,要在变量前加上global。

Go Top
comments powered by Disqus