【Python基础】python 作用域

*python只会在模块、类和函数中引入新的作用域。

*Python首先在函数的本地作用域中查找变量,未找到时会继续在全局作用域和内置作用域中查找变量

 

code.1 和 code.2中是非常简单的例子。

 code.1

1 i = 0
2 def f():
3     i = 1
4     print i #   1
5 
6 f()
7 print i  #  0

code.2 

1 i = 0
2 def f():
3     print i # 0
4 f()

 在Python中,使用一个变量之前不必预先声明它,但是在真正使用它之前,它必须已经绑定到某个对象;而名字绑定将在当前作用域中引入新的变量,同时屏蔽外层作用域中的同名变量,不论这个名字绑定发生在当前作用域中的哪个位置。 

如code.3中的情况,抛出异常

code.3

1 i = 0
2 def f():
3     print i  #UnboundLocalError: local variable 'i' referenced before assignment
4     i = 0
5 f()

   参考(搬运):

   http://www.cnblogs.com/frydsh/archive/2012/08/12/2602100.html

原文地址:https://www.cnblogs.com/Hed-geh0g/p/7120477.html