python学习第十章

时间:2022-09-08 11:08:22

主要内容

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是指调用父级的变量