首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Python中的变量比C中的更长(作用域更大)?

为什么Python中的变量比C中的更长(作用域更大)?
EN

Stack Overflow用户
提问于 2012-04-16 08:49:43
回答 1查看 194关注 0票数 4

Python代码:

代码语言:javascript
复制
for i in xrange(10):
    for j in xrange(5):
        pass

# The for-loop ends, but i,j still live on
print i,j  # 9, 4

C代码:

代码语言:javascript
复制
for(int i=0; i<=10; i++)
    for(int =0; j<=5; j++)
        ;

// The for-loop ends, so i,j can't be accessed, right?
printf("%d, %d", i, j);  // won't compile

那么,Python中的变量即使在for循环结束后也会继续存在吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-16 08:51:05

在Python中,只有函数、模块和类定义的主体描述了作用域。其他控制结构则不需要。

有关这方面的一些基本信息,请参阅Python教程的Classes页面的Python Scopes and Namespaces部分。一个重要的部分:

虽然作用域是静态确定的,但它们是动态使用的。在执行过程中的任何时候,至少有三个嵌套作用域的命名空间可以直接访问:

  • 首先搜索的最里面的作用域包含本地名称
  • 任何封闭函数的作用域(从最近的封闭作用域开始搜索)包含非本地名称,但也包含非全局名称
  • 倒数第二个作用域包含当前模块的全局名称
  • 最外层的作用域(最后搜索)是包含内置名称的命名空间

<

  • >F212>
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10167521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档