python-作用域解析
2019-03-10 11:55:17来源:博客园 阅读 ()
局部作用域和全局作用域:局部作用域不能修改全局作用域的变量
count = 10 def outer(): #global count 局部变量改成全局变量,global声明一下即可。就可以修改了。 print(count) #全局变量可以在局部调用但是不可以修改。 count+=1 #报错, count = 1 #这里并不是修改了全局变量count,而是重新定义了一个新的局部变量count print(count) outer()
外层作用域:nonlocal
def outer(): count=10 def inner(): nonlocal count #跟global作用一样,在这一层用 count=20 inner() print(count) outer()
小结:
1.变量查找顺序:LEGB
局部作用域>外层作用域>当前模块中全局>python内置作用域;
2.只有模块/类/函数能引入新作用域;
3.变量:内部作用域先声明就覆盖外部变量,不声明直接用就会使用外部作用域变量;
4.内部域修改外部域变量,全局变量用global,嵌套域变量用nonlocal。
原文链接:https://www.cnblogs.com/sitongyan/p/10496562.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Django model 字段类型及选项解析 2019-07-24
- Python-19-元类 2019-07-24
- Python-17-反射 2019-07-24
- Python-16-继承、封装、多态 2019-07-24
- Python-18-类的内置属性 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash