美文网首页
python 三大神器

python 三大神器

作者: 寻找u | 来源:发表于2018-11-12 20:30 被阅读0次

    迭代器
    1.1、判断可迭代对象
    1.2、自定义迭代器
    自定义迭代器对象: 在类里面提供iter和next方法创建的对象就是迭代器。
    2、生成器
    2.1 生成器创建方式1
    把列表推导式的中括号改成小括号创建的对象就是生成器。生成器:生成器是一个特殊的迭代器,也就是说可以使用next和for循环取值。
    2.2 生成器创建方式2
    在def里面看到yield关键字表示就是一个生成器。
    3、装饰器
    3.1闭包
    1、在一个函数里边定义了一个函数
    2、内函数可能会用到外函数的数据
    3、外函数一定有返回值,而且是内函数的引用

    # 外函数outer()
    def outer():
        # 外函数局部变量,对于内函数来说相当于全局变量
        number = 10
        # 内函数   
        def inner():
            # 外函数数据的引用      
            nonlocal number     
            number += 1
        # 返回值是内函数inner的引用
        return inner        
    
    # 调用outer函数,用func接收inner函数的引用
    func = outer()
    # 调用inner函数     
    func()  
    

    1、装饰器定义:
    闭包的延伸,外函数传入函数的引用,而且内函数返回函数的调用就是装饰器
    2、作用:
    在不修改函数体的前提下,在函数前面添加功能比如验证等
    3、原理:
    直接调用内函数,先执行内函数函数体,即验证的部分,在内函数的返回值的地方返回传入函数的调用,即不被修改的函数体。

    def outer(func):
        def inner():
            return func()
        return inner
    # 装饰器的使用  @ :相当于 func = outer(func) 
    # 即把func的引用替换成outer的返回值,也就是内函数的引用
    # 然后在内函数中返回原本func的引用的调用,即func的函数体
    @outer
    def func():
        pass
    

    相关文章

      网友评论

          本文标题:python 三大神器

          本文链接:https://www.haomeiwen.com/subject/hqqhfqtx.html