定义
全局变量:函数体之外定义的变量
局部变量:函数体之内定义的变量
下述代码中,t是全局变量,m是局部变量
t = 1def func(x):m = 2return x//m
规则
1. 局部变量和全局变量是不同的变量,即使变量名相同
局部变量是函数中的占位符,与全局变量可能重名,但不是同一个变量函数运行结束后,局部变量被释放可以使用global保留字在函数中使用全局变量看下面两个例子:
例1: 全局变量s=100,局部变量s=3628800,函数调用完毕后,打印s,则打印的结果是全局变量s,局部变量s已经释放了
例2: 全局变量s初始值100,经过函数处理后为s=362880000,函数调用完毕后,打印s,则打印的结果是经过函数处理后的值,函数作用于对全局变量上了
2. 局部变量为组合类型数据且在函数内部未创建而直接调用,则等同于全局变量
此例中,局部变量ls在函数体中未创建而直接被调用,则认为ls为全局变量,函数对ls的修改直接影响到全局变量ls
此例中,创建了全局变量和局部变量ls,函数对ls的修改作用于局部变量,局部变量和全局变量是不同的变量
对基本对数据类型,也是可以调用全局变量的,但是不可改变(如果对s进行赋值,那么必须先定义局部变量),比如
s = 1def func(x): return x**2 + sprint(func(3))>>> 10
规则总结:
基本数据类型,无论是否重名,全局变量和局部变量不同函数可以调用全局变量作为输入的对基本数据类型,这个变量不可变,只能作为输入参数
对于组合数据类型,则这个变量相当于在函数中调用全局变量,是可以被更改
3. 可以使用global保留字在函数中申明全局变量