目录

一、名称空间

二、作用域 

 三、匿名函数--lambad函数


一、名称空间

名称空间: 专门用来存储名字的一个地方
        变量名,函数名

    程序中有专门的内存区域,来存储专门的数据
        1.名称空间 --> 栈(变量名,函数名)
        2.内存数据 --> 堆(变量值,函数值)
    有一个东西叫"名称空间"是专门用来存放名字,并且为了避免重名,它一共有三层

1.内建名称空间(存内置函数的地方)
        这个名称空间会随着python程序的启动而生成,在程序关闭时,回收,清除里面的数据
        它是在程序中,最先被加载出来的,用来存一些内置函数
        print input type int float

    2.全局名称空间(存你在python外层定义的名字,不是内置以及函数内的名字)
        这个名称空间会随着python文件的执行产生,执行后销毁,清除
        它是在程序中第二个被加载出来的名空军,外层代码里写的名字都放在这
        自己定义得变量,函数名(不是内置的,也不是在函数内定义得)

    3.局部名称空间(函数里面的变量名,函数名)
        这个名称空间会随着函数的调用/结束调用而产生,销毁.函数的形参,函数内定义名字都放着
        它也是最后一个被加载出来的名称空间,在调用函数时存活,调用完后销毁
        存放的名称:
            1.函数内定义的变量名,函数名
            2.函数的形参 

二、作用域 

全局作用域:    整个程序都可以使用
        (内置名称空间,全局名称空间)
        内置函数,在外层定义的变量,函数

    局部作用域: 只有在局部位置才能使用(函数内)
        局部名称空间
        函数里面定义得变量和函数

    定义域: 定义域相当于开辟了一个地盘.来执行操作.里面的"数据",未经许可外人不能使用
    作用域:    定义好的数据,能够使用,作用的范围

global --> 全局,提域

    语法:
        def 函数名():    
            global 数据名
            声明/操作数据 

def fun():
    global a
    a = 123
fun()
print(a)

 nonlocal --> 局部,降域

def fun1():
    a = 2
    def fun2():
        nonlocal  a # 把变量a深度私有化
        a = 3
    fun2()
    print(a)
fun1()

 三、匿名函数--lambad函数

语法:

        lambad 参数 :执行代码

b = lambda x,y:x+y
print(b(70,36))

 Python函数和lambda表达式