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
完!
变量的定义使用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
完!
相关文章推荐
- python语法31[变量的作用域+global]
- 从文章《python31[变量的作用域+global]》想到的
- python global语句 变量作用域
- Python变量作用域和global用法
- python nonlocal/global ---内部作用域中改变外部变量
- Python基本语法_变量作用域
- python的闭包与变量作用域
- OC——多态、NSString的基本使用、点语法、成员变量作用域
- OC点语法和变量作用域
- python main函数中变量默认为global variable & SIGKILL SIGSTOP 无法捕获
- 飘逸的python - 为什么修改全局的dict变量不用global关键字
- python语法31[keywords+builtins+modules]
- 黑马程序员-- 核心语法 Property synthesize 成员变量的作用域
- 黑马程序员--C#语法基础,命名规范,变量作用域等
- OC学习 点语法实质 与 变量作用域
- Python -- 语法和变量
- python变量作用域
- python:global,可变数据类型与不可变数据类型,在声明全局变量中的不同
- python语法31[引用和拷贝]
- Python语法基础——关于全局变量与局部变量