python 变量作用域
分类: Python 2011-07-23 11:20 1143人阅读 评论(1) 收藏 举报
原地址:
http://blog.csdn.net/lovingprince/article/details/6627555
目录(?)[+]
几个概念:
python能够改变变量作用域的代码段是def、class、lamda.
if/elif/else、try/except/finally、for/while 并不能涉及变量作用域的更改,也就是说他们的代码块中的变量,在外部也是可以访问的
变量搜索路径是:本地变量->全局变量
python能够改变变量作用域的代码段是def、class、lamda.
[python] view plaincopyprint?
def scopetest():
localvar=6;
print(localvar)
scopetest()
#print(localvar) #去除注释这里会报错,因为localvar是本地变量
if/elif/else、try/except/finally、for/while
[python] view plaincopyprint?
while True:
newvar=8
print(newvar)
break;
print(newvar)
try:
newlocal=7
raise Exception
except:
print(newlocal)#可以直接使用哦
输出结果:8 8 7
可见这个关键字中定义变量,他们的作用域跟外部是一致的,这个跟Java的作用域概念有点不一样。
变量搜索路径是:本地变量->全局变量
[python] view plaincopyprint?
def scopetest():
var=6;
print(var)#
var=5
print(var)
scopetest()
print(var)
输出结果:5 6 5
这里var 首先搜索的是本地变量,scopetest()中 var=6相当于自己定义了一个局部变量,赋值为6. 当然如果的确要修改全局变量的值,则需要如下:
[python] view plaincopyprint?
def scopetest():
global var
var=6;
print(var)#
var=5
print(var)
scopetest()
print(var)
输出结果:5 6 6
再看一种这种情况:
[python] view plaincopyprint?
def scopetest():
var=6;
print(var)#
def innerFunc():
print(var)#look here
innerFunc()
var=5
print(var)
scopetest()
print(var)
输出结果:5 6 6 5
根据调用顺序反向搜索,先本地变量再全局变量,例如搜先在innerFunc中搜索本地变量,没有,好吧,找找调用关系上一级scopetest,发现本地变量var=6,OK,就用他了。
分享到:
相关推荐
作用域作用域作用域的查找顺序新作用域的引入目录Contents01作用域作用域作用域就是一个 Python 程序可以直接访问命名空间的正文区域。Python 中,变量的访问权限决定于这个变量是在哪里赋值的。变量的作用域决定了...
本文为大家介绍了Python函数作用域的查找顺序,供大家参考,具体内容如下 1.什么是LEGB? L:local 函数内部作用域 E:enclosing 函数内部与内嵌函数之间 G:global 全局作用域 B:build-in 内置作用域 2.LEGB是作...
8.9_变量作用域|Python函数|Python3.8入门_&_进阶_&_原生爬虫实战完全解读
python中变量作用域及嵌套作用域.pdf
关于Python作用域的知识在python作用域有相应的笔记,这个笔记是关于Python闭包及其作用域的详细的笔记 如果在一个内部函数里,对一个外部作用域(但不是全局作用域)的变量进行引用,那么内部函数就被称为闭包...
python中变量作用域及嵌套作用域.docx
本文实例分析了Python作用域用法。分享给大家供大家参考,具体如下: 每一个编程语言都有变量的作用域的概念,Python也不例外,以下是Python作用域的代码演示: def scope_test(): def do_local(): spam = "local...
主要介绍了python作用域与名字空间原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
在Python 2.0及之前的版本中,Python只支持3种作用域,即局部作用域,全局作用域,内置作用域;在Python 2.2中,Python正式引入了一种新的作用域 — 嵌套作用域;在Python 2.1中,嵌套作用域可以作为一个选项被开启...
从基础开始讲解python 包、模块、函数与变量作用域等内容
python中变量作用域及嵌套作用域扫描.pdf
学习python中变量作用域及嵌套作用域.pdf
# 题目:学习使用auto定义变量的用法。 # 程序分析:python中的变量作用域。
python中变量作用域及嵌套作用域宣贯.pdf
ppt的内容大家可以看http://wenku.baidu.com/view/744de524ccbff121dd3683ee.html
本文详细介绍了Python中变量在函数中的作用域。通过学习本文,您将了解以下内容: Python中局部变量的声明和作用范围; 嵌套函数中的局部变量的作用范围; 如何在函数内部访问外层函数的变量。 能学到什么 通过阅读...
在讲这个话题前,首先我们来看一道题: 代码1: def foo(): return [lambda x: x**i for i in range(1,5,2)] print([f(3) for f in foo()]) 伙伴们,你们认为这里产生的结果是什么呢?我们再来看下这题的变体: ...