首页 > 其他 > 详细

函数作用域

时间:2018-03-10 11:18:45      阅读:215      评论:0      收藏:0      [点我收藏+]
作用域由大到小分为:
built_in-------global------enclosing------locals
count=10
def add():
print(count)就认为count=10,如果要修改则函数会报错
如果一定要这样修改,可以给count一个定义:

count=10
def add():
global count
print(count)
count=4
print(count)
add()
小结
1,变量查找顺序LEGB,作用局部域>作用域外层>当前模块中的全局>python内置的作用域
2,只有模块,类,以及函数才会有作用域
3,对于一个变量,内部作用域先声明就会覆盖外部变量,不声明就会直接使用
4,内部作用域要修改外部作用于变量的值时,全局变量要使用关键字global,
嵌套作用域要使用nonlocal关键字,nonlocal时python3新增的关键字,有了这个关键字,就能完美的实现闭包了
count=4#这样会报错,因为在global域中count=10,当在函数调用
# 了count=10,函数内部enlosing域

函数作用域

原文:https://www.cnblogs.com/laoli1020/p/8537547.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!