1.迭代器(iter)
1)迭代器是容器型类型
2) 怎么创建迭代器:
a.讲其他序列装换成迭代器
b.创建生产器
3)特点:打印的时候不能查看元素;
无法获取元素个数;
获取元素的时候必须将元素从迭代器中取出,取出后元素会从迭代器中消失,并且无法再添加;
2.迭代器获取元素
1)获取单个元素
next(迭代器) - 获取迭代器最前面的那个元素
2)遍历
for 变量 in 迭代器:
3.生成器
1) 生产器是容器型类型数据,但是生产器中存储的并不是数据,而是产生数据的算法
2)生产器就是迭代器
4.怎么创建生成器
调用一个带有yield关键字的函数就可以得到一个生成器对象
def str_new():
for x in range(1,1000):
yield f'stu{x:0>3}'
print(list(str_new()))
5.装饰器
装饰器=实参高阶函数+返回值高阶函数
装饰器是用来给已经定义好的函数添加功
添加功能:
1) 无参装饰器语法:
def 装饰器名称():
def 新函数名()
原函数返回值=原函数()
新增功能
retrun 元函数返回值
retrun 新函数名
2)有参数装饰器语法:
def 装饰器名称():
def 新函数名(*args,**kwargs):
原函数返回值=原函数(*args,**kwargs)
新增功能
retrun 元函数返回值
retrun 新函数名
# 练习:写一个装饰器在函数调用结束后打印千锋教育;
def add_logo(f):
def new_f():
result=f()
print('千锋教育')
return result
return new_f
@add_logo
def func1():
print('hello world')
print(func1())
def product_nums(f):
def new_f():
result=f()
return result*100
return new_f
@product_nums
def sum_nums():
result=10
return result
print(sum_nums())