函数与变量作用域
1 global关键字
函数内部默认只能读取全局变量的值,若需要修改,则需要使用global关键字进行事先声明,否则在函数内修改全局变量会报英文出错.
j=5
k=2
def sum1():
global j #声明j为全局变量
j=j+5 #全局变量+5 变成了新的局部变量
k=4 #定义了新的局部变量k=4
return k
print(j,k,sum1(),j,k)
执行结果
5 2 4 10 2
#k前后的值并未更改
#j前后的值改变了
#函数返回的局部变量k更改
2 闭包(Closure)
j=5 #全局变量j
def sum0(): #外部函数sum0
k=2 #闭包变量k
def sum1(): #嵌套的内部函数sum1
i=k+j #局部变量i
return i
return sum1()
print('调用sum0结果%d'%(sum0()))
执行结果
调用sum0结果7

浙公网安备 33010602011771号