python三大器

1.生成器

1.带yield就是生成器,因为生成器是用yield返回结果,而不是return。

2.列表有列表推导式,生成器当然也有生成器表达式。如:(for i in range(10))  是小括号就是生成器,中括号就是列表推导式

生成器返回按需产生结果的一个对象,而不是一次构建一个结果列表

本质:  迭代器(所以自带了__iter__方法和__next__方法,不需要我们去实现)

2.迭代器

字符串、列表、元组、字典、集合都可以被for循环,说明他们都是可迭代的

l = [1,2,3,4]
l_iter = l.__iter__()

l_iter 就是一个迭代器

迭代器遵循迭代器协议:必须拥有__iter__方法和__next__方法。

3.装饰器

import time
def timer(func):
    def inner():
        start = time.time()
        func()
        print(time.time() - start)
    return inner

@timer   #==> func1 = timer(func1)
def func1():
    print('in func1')


func1()

装饰器其实就是一个媒介的作用,执行的时候需要把函数传到里面执行

原文地址:https://www.cnblogs.com/Bin-y/p/10957480.html