介绍

全局变量是在函数外部定义的变量,所有函数内部都可以使用这个变量。 注意:函数执行时,需要处理变量时会:

  1. 首先查找函数内部是否存在指定名称的局部变量,如果有,直接使用。
  2. 如果没有,查找函数外部是否存在指定名称的全局变量,如果有,直接使用。
  3. 如果没有,程序报错。

注意事项

  1. 函数不能直接修改全局变量的引用,如果直接使用赋值语句,会在函数内部,定义一个局部变量。

    • 全局变量是在函数外部定义的变量(没有定义在某一个函数内),所有函数内部都可以读取这个变量

      提示:在其他编程语言中,大多不推荐使用全局变量 -- 可变范围太大,导致程序不好维护。 但是在 Python 中使用全局变量的场景还是很较多的。

    • 在函数内部,可以通过全局变量的对象引用获取对应的数据。

    • 但是,对于不可变对象来说,不允许使用赋值语句修改其对象引用(可变对象还是可以修改元素的,但也不允许修改其对象引用)

  2. 在函数内部修改全局变量的值 如果只是在函数内部访问全局变量,可以直接访问,但是如果要修改全局变量, 需要使用 global 全局变量名 提前声明,然后才能修改。

    • 注意在开发时,应该把模块中的所有全局变量定义在函数上方,这样就可以保证所有函数都能够正常访问到每一个全局变量了
  3. 全局变量命名的建议

    • 为了避免局部变量和全局变量出现混淆,在定义全局变量时,有些公司会有一些开发要求,例如: 全局变量名前应该增加 g_ 或者 'gl_' 的前缀 > 提示: 具体的要求格式,各公司要求可能会有些差异。
  4. 如果局部变量的名字和全局变量的名字相同,Pycharm 会在局部变量下方显示一个灰色的虚线。