在函数体内的变量是局部变量
def fun():
i=100
print("函数内i=",i)
i=1
print("初始的i=",i) # 初始的i= 1
fun() # 函数内i= 100
print("函数外i=",i) # 函数外i= 1
在函数体内设置全局变量,使用global关键字
def fun():
global i
i=100
print("函数内i=",i)
i=1
print("初始的i=",i) # 初始的i= 1
fun() # 函数内i= 100
print("函数外i=",i) # 函数外i= 100
在函数体的参数是局部变量
def fun(i):
print("函数内i=",i)
i=1
print("初始的i=",i) # 初始的i= 1
fun(i=100) # 函数内i= 100
print("函数外i=",i) # 函数外i= 1
嵌套方法体:调用外部函数体的局部变量
def fun():
i=100
def fun2():
j=i*2 # i调用外部方法的i
print(j)
return fun2()
fun() # 200
def fun():
i=100
def fun2():
i=i*2 # i没有定义,报错!
print(i)
return fun2()
fun() # UnboundLocalError
def fun():
i=100
def fun2():
nonlocal i # 调用外部相同名字变量用nonlocal关键字
i=i*3
print(i)
return fun2()
fun() # 300
|