关于python的变量作用域

 

#定义变量a
>>> a = 0
>>> print a
0
 
#定义函数p()
>>> def p():
...     print a
...     
>>> p()
0
 
#定义函数p2()
>>> def p2():
...     print a
...     a = 3
...     print a
...     
>>> p2() # 运行出错,外部变量a先被引用,不能重新赋值
Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
  File "<interactive input>", line 2, in p2
UnboundLocalError: local variable 'a' referenced before assignment
 
#定义函数p3()
>>> def p3():
...     a = 3 # 不引用直接赋值
...     print a
...     
>>> p3()
3
>>> print a
0 # 外部变量a并未改变
posted @ 2012-01-21 13:00  catmelo  阅读(449)  评论(0编辑  收藏  举报