点击跳转
《Python入门系列目录》
1. 局部变量和全局变量
- 局部变量:只能在特定的函数中可以访问的变量
- 全局变量:定义在所有函数最外面的变量
- 分辨局部变量与全局变量的规则
- 假设有一个变量为a,它出现在函数f()里面,可以使用如下规则来判断
- 如果有global关键字修饰变量a,则a为全局变量
- 否则,假如a是参数或者出现在等号左边,则a是局部变量
- 否则,a与函数f外层的变量a的属性相同
- 假设有一个变量为a,它出现在函数f()里面,可以使用如下规则来判断
- 局部变量可以在外部被赋值,但不可以在外部被调用
2. 嵌套函数
- 嵌套函数是指在函数内定义的函数
- 定义在其他函数内部的函数称为内建函数,包含有内建函数的函数称为外部函数
- 嵌套函数如同局部变量,是局部函数,它只能在外层定义它的函数中使用
3. 嵌套函数下的局部和全局变量
- 假设有一个变量a,它出现在函数f里面,可以使用如下规则来判断
- 如果有global关键字修饰变量a,那么不管函数f()是不是嵌套函数,a都为全局变量
- 否则,假如a是参数或者出现在等号左边,则a是局部变量
- 否则,a应继承上层函数中a的属性
- 如果函数f不是嵌套函数,那么a为全局变量
- 如果函数f是嵌套函数,那么a就是上层的a
a = 1 # 全局变量
def F3():
def F():
global a # a是最外层的全局变量
print("In F3's F, a =", a)
a = 3
F()
F3()
a = 1
def F4():
global a
def F():
a = 2 # a是F的局部变量
print("In F4's F,a=", a)
F()
print("In F4, a =", a) # a是全局变量
F4()
a = 1
def F5():
def F(): # a不是F的局部变量,那就继承上层函数中a的属性
print("In F5's F,a =", a)
a = 3
F()
F5()