关于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 "input>", line 1, in <module>
  File "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并未改变

你可能感兴趣的:(Python)