1.在自定义函数的过程中,经常涉及到定义变量,把变量定义在函数内部还是定义在函数体外部,作用是完全不同的
2.定义在函数体外部的变量被称为全局变量;
定义在函数体内部的变量被称为局部变量,两种变量作用的范围不一样。
局部变量作用范围仅限于函数体内部,变量在函数调用结束后及时注销,函数体外的其他代码无法调用;而全局变量的作用范围是全局,自定义函数的内部可以应用,自定义函数体外其他代码也可以调用。
3.这样就又涉及到另一个问题,变量的查找顺序,即当函数体内需要调用某个变量时,它的查找顺序是怎样的呢?
一般会先查找函数体内部有没有定义变量,如果有,就用函数体内部定义的变量;如果没有,再去全局进行查找。
如果全局和函数体内部都定义了某个名字相同的变量(即局部变量和全局变量名字相同),函数体内部优先使用局部变量。
首先,我们先来看一下局部变量:
局部变量
局部变量就是在函数内部定义的变量,变量的生效范围是在一个局部立面生效。
尝试在右边代码框完成以下操作:
a = 200
def test1():
a = 300
print("在test1中a=", a)
def test2():
a = 400
print("在test2中a=", a)
test1()
test2()