主要内容
1. 名称空间, 局部名称空间, 全局名称空间, 作⽤域, 加载顺序.
2. 函数的嵌套
3. gloabal, nonlocal关键字
1.名称空间(也就是全局和局部)
命名空间分类:
1)全局命名空间, .py文件内,函数外声明的变量
2)局部命名空间 在函数里面声明的变量
3)内置命名空间 python编译器提供的变量比如print list等
几类命名空间的加载顺序
内置命名空间 > 全局命名空间 > 局部命名空间
取值顺序
局部命名空间 > 全局命名空间 > 内置命名空间
a = 2 def fun(): a = 10 print(10) fun() print(a) """ 运行结果是 10 2 """
命名空间的作用域
全局命名空间是 py文件,包含函数里面
局部命名空间 作用域是在函数内
我们可以通过globals()函数来查看全局作⽤域中的内容, 也可以通过locals()来查看局部作 ⽤域中的变量和函数信息
示例:
a = 2 def fun(): a = 10 c = 6 print(10) def fun1(): b = 5 print(globals()) print(locals()) fun1() print(locals()) fun() print(a)
函数嵌套
太容易了,不回顾了
关键字global和nonlocal
global是指在局部变量中对全局变量进行修改.
nonlocal是指调用父级的变量