局部变量:定义在函数内部的变量,只有在函数内部才能使用,函数执行完成之后会被系统收回,因此,在不同的函数内部可以定义同名的局部变量;
全局变量:定义在函数外部,所有函数都可以在内部使用;
调试模式下,左下角窗口可以显示,当前运行的代码位置,是在模块(module)中,还是在某个函数内部;
在其他开发语言中,大多不推荐使用全局变量,因为全局变量可变范围太大,一旦程序有问题不好维护;
函数在执行时,会先在函数内部寻找是否有定义的局部变量,如果没有,再找是否有函数外部定义的全局变量;如果在函数内部有一个和全局变量同名的变量,则会在函数内部定义一个局部变量,在函数执行完成后,该同名的局部变量会被回收;
函数内部无法直接修改全局变量,如果想修改,需要使用 global 关键字先声明一下;
建议将全局变量定义在所有函数的上方,这样可以满足下方函数有需要的时候可以使用定义好的全局变量;
为了避免混淆,可以在全局变量前面加上 g_ 或 gl_ 等前缀加以区分;