oldboy day 4

一、 函数对象
 函数对象:函数是第一类对象,即函数可以当作数据传递
  1 可以被引用
  2 可以当作参数传递
  3 返回值可以是函数
  3 可以当作容器类型的元素
二、 函数的嵌套
   1 函数的嵌套调用
   2 函数的嵌套定义

def f1():
    def f2():
        print('from f2')
        def f3():
            print('from f3')
        f3()
    f2()

 三、 名称空间与作用域
  三种名称空间:
    内置名称空间: 随着python解释器的启动而产生
    全局名称空间: 文件的执行会产生全局名称空间,指的是文件级别定义的名字都会放入改空间 
    局部名称空间: 调用函数时会产生局部名称空间,只在函数调用时临时绑定,调用结束解绑定
  作用域:
  1. 全局作用域:  内置名称空间,全局名层空间
  2. 局部作用    局部名称空间
    全局作用域: 全局有效,在任何位置都能被访问到,除非del删掉,否则会一直存活到文件执行完毕
    局部作用域的名字: 局部有效,只能在局部范围调用,只在函数调用时才有效,调用结束就失效
    名字的查找顺序: 局部名称空间---》全局名层空间---》内置名称空间
    查看全局作用域内的名字:gloabls()
    查看局局作用域内的名字:locals()
四、 闭包
    1.定义在内部函数
    2. 包含对外部作用域而非全局作用域的引用,该内部函数就成为闭包函数
    特点:闭包应用:惰性计算
五、 装饰器
六、 迭代器

    迭代的概念:重复+上一次迭代的结果为下一次迭代的初始值重复的过程称为迭代,每次重复即一次迭代,并且每次迭代的结果是下一次迭代的初始

    为什么要有迭代器?对于没有索引的数据类型,必须提供一种不依赖索引的迭代方式
    可迭代的对象:内置__iter__方法的,都是可迭代的对象


七、 生成器
    生成器函数:只要函数体包含yield关键字,该函数就是生成器函数
    生成器就是迭代器
    yield的功能:
  1.相当于为函数封装好__iter__和__next__
  2.return只能返回一次值,函数就终止了,而yield能返回多次值,每次返回都会将函数暂停,下一次next会从上一次暂停的位置继续执行

八、 内置函数

转载于:https://www.cnblogs.com/scxbk/p/6898896.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值