【Python基础】python 作用域

本文介绍了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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值