目录
1、什么叫作用域
2、3种不同的作用域
3、作用域的变量名解析: LEGB原则
4、global语句
5、本节总结
1、什么叫作用域
• 作用域
1)命名空间:函数创建的区域就是命名空间
2)在命名空间中决定变量能被访问到的范围就是作用域
3)比如:一个函数所有变量名都是与函数的命名空间相关联的
4)常见的作用域范围是 def 之内 和 def 之外
2、3种不同的作用域
1)如果一个变量在def之内被赋值,它被定义为在这个函数之内:本地变量
2)如果一个变量在一个嵌套的def中赋值,对于外部的函数来说,它是非本地的
3)如果在def之外赋值,它就是整个文件的,也就是全局的


3、作用域的变量名解析: LEGB原则
1)内置作用域: builtins
2) LEGB作用域查找原则:
当引用一个变量时, Python按以下的顺序依次进行查找:
i)从本地变量中查找
ii)在任意上层函数的作用域中查找
iii)在全局作用域中查找
iiii)在内置作用域中查找
第一个能够完成的查找就算成功。变量在代码中的位置通常就决定了它的作用域


4、global语句
1) global是一个作用域的声明
2)它的作用是将一个变量声明为一个全局的作用域进行使用
3)在def之中进行声明;可以声明多个

5、本节总结
• 如何掌握本节内容
1)作用域、 LEGB原则、 global、 nonlocal关键字n
2)课后:把代码自己敲一遍 ※参照附件代码
