六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 203|回复: 0

Python的作用域

[复制链接]

升级  50.67%

112

主题

112

主题

112

主题

举人

Rank: 3Rank: 3

积分
352
 楼主| 发表于 2012-12-17 21:50:52 | 显示全部楼层 |阅读模式
Python的作用域

<div class="postText"><div id="cnblogs_post_body">    Python是静态作用域语言,尽管它自身是一个动态语言。也就是说,在Python中变量的作用域是由它在源代码中的位置决定的,这与C有些相似,但是Python与C在作用域方面的差异还是非常明显的。
    接下来会谈论Python的作用域规则,在这中间也会说明一下Python与C在作用域方面的不同。
    在Python 2.0及之前的版本中,Python只支持3种作用域,即局部作用域,全局作用域,内置作用域;在Python 2.2中,Python正式引入了一种新的作用域 --- 嵌套作用域;在Python 2.1中,嵌套作用域可以作为一个选项被开启;嵌套作用域的引入,本质上为Python实现了对闭包的支持,关于闭包的知识,网上有很多解释,这里就不详细展开了。相应地,变量查找顺序由之前的LGB变成LEGB(L:Local,E:Enclosing,G:Global,B:Built-in)。
    在Python中,并不是任何代码块都能引入新的作用域,这与C有很大的不同:
<div class="cnblogs_code">#include<stdio.h>int main() {    if(2 > 0) {        int i = 0;    }    printf("i = %d", i);    return 0;}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表