欢迎关注小睿的微信公众号:郭小睿同学
,每天更新小知识、笔记、案例、学习资源~
在被调用函数赋值的变元和变量,处于该函数的局部作用域
。
在所有函数之外赋值的变量,属于全局作用域
。
处于局部作用域的变量,叫局部变量
。
处于全局作用域的变量,叫全局变量
。
一个变量不可能既是局部变量,又是全局变量
。
全局作用域的变量,在程序被销毁时候,全局变量就会被丢弃。
局部作用域的变量,在局部运行完后,局部变量也就会被丢弃。
- 全局作用域的代码不能使用任何局部变量。
- 但是局部作用域可以访问全局变量。
- 一个函数的局部作用域的中的代码,不能使用其他局部作用域中的变量。
- 可以在不同的作用域中,用相同的名字命名不同的变量。
如果所有变量都定义为全局变量,当使用特定函数修改变量时,别的地方再次使用其变量值的时候,就会受到影响。
因此在小程序中使用全局变量不会造成太大的问题,但是在大程序中,依赖全局变量就是一个坏的习惯。
一般在实际开发中,我们应该避免在不同的作用域使用相同变量名
,防止追踪某一时刻使用的是哪个变量,引起不必要的麻烦。
global语句
如果需要一个函数修改全局变量,应该使用global语句
。
def spam():
global eggs
eggs = "spam"
eggs = "global"
spam()
print(eggs)
控制台输出:
程序剖析
eggs是全局变量,但是在spam()
函数中,我们针对eggs变量使用了global
关键字,因此在局部修改了eggs变量的值。