函数作用域与名称空间

目录

一、名称空间

二、作用域 

 三、匿名函数--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表达式

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

py ~ 小久

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值