您的位置:首页 > 编程语言 > Python开发

python语法31[变量的作用域+global]

2011-01-27 14:02 741 查看
一 变量与作用域

变量的定义使用var=varvalue

1)如果函数中定义了同名的变量,则同名的全局变量被屏蔽,否则查找使用全局变量

def f1():
v1 = 'local'
f2()
print (v1)

def f2():
print(v1)

v1 = "Value1"
f1()
#Value1
#local

2)内嵌定义的函数中的变量的使用,如果内嵌函数中没有定义,则先查找包含此内嵌函数作用域中变量的定义,最后查找全局中变量的定义。

def f3():
def f4():
print (v3)
v3 = "Value3#"
print(v3)
f4()

v3 = "Value3"
f3()
#Value3#
#Value3#

3)注意=赋值时,不可变类型其实是产生了对原变量的引用,可变类型与原来的共享相同的内存。

def f5():
v51 = 100
v53 = v52
v53.append(100)
print( v51)
print( v53)

v51 = 10
v52 = [10]
f5()
print(v51)
print(v52)
#100
#[10, 100]
#10
#[10, 100]

4)作用域由def、class、lambda等语句产生,if、try、for等语句并不会产生新的作用域。

def f7(right):
if(right):
result = True
else:
result = False
print (result)

try:
v7 = "Value7"
except:
pass
print(v7)

f7(False)
#False
#Value7

三 global关键字

global关键字用来在局部作用域中申明使用全局变量。

def f6():
global v6
print(v6)
v6 = "local"
print(v6)

v6 = "global"
f6()
print(v6)
#global
#local
#local

参考:

http://hi.baidu.com/xjtukanif/blog/item/f35000f1642670c00b46e03c.html

完!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: