python三大器

博客主要介绍Python相关知识。生成器用yield返回结果,有生成器表达式,本质是迭代器,按需产生结果。迭代器遵循协议,有__iter__和__next__方法,字符串等对象可迭代。还提到装饰器起媒介作用,执行时需传入函数。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值