进阶学习6-装饰器/迭代器/生成器

2020-01-30  本文已影响0人  龙猫六六

总结

描述 备注
函数核心概念1 函数可以赋值给变量
函数核心概念2 函数可以作为参数传递
函数核心概念3 嵌套函数
函数核心概念4 函数可作为返回值
装饰器 不改变原函数前提下,包装函数 将修饰的原函数作为嵌套函数
迭代器 有限[i for i in range(10)] 调用next获取下一个元素
生成器 无限(i for i in range(10)) 特殊的迭代器

装饰器

装饰器的作用:在不改变原函数的前提下,对函数进行修改。即嵌套函数的

函数的4大特点

实例1

# func = func1,函数赋值给变量
def my_decorator(func):
    # func函数作为参数进行传递
    print('my_decorator')
    # 嵌套函数
    def wrapper(*args, **kwargs):
        print('wrapper')
        func(*args, **kwargs)
    #函数作为返回值
    return wrapper

@my_decorator
def func1():
    print('func1 welcome')

func1()
#######
#my_decorator
#wrapper
#func1 welcome

实例2

def repeat(num):
    print('repeat')
    def my_decorator(func):
        print('my_decorator')
        def wrapper(*args, **kwargs):
            print('wrapper')
            for i in range(num):
                func(*args, **kwargs)
        return wrapper
    return my_decorator

@repeat(3)
def func1():
    print('func1 welcome')

func1()

迭代器/生成器

迭代器

生成器

上一篇下一篇

猜你喜欢

热点阅读