目录
一、名称空间
名称空间: 专门用来存储名字的一个地方
变量名,函数名
程序中有专门的内存区域,来存储专门的数据
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))