# 写个装饰器将原函数返回值加上指定的数defadd_number(num):defadd_number_(fn):defnew_fn(*args,**kwargs):
result = fn(*args,**kwargs)iftype(result)in(int,float,complex):return result + num
return result
return new_fn
return add_number_
@add_number(5)deffunc1(num1, num2):return num1 * num2
print(func1(2,4))
二、迭代器(iter)
2.1 什么是迭代器
容器型数据类型
不可直接获取所有元素,只能一个一个取走
不可直接统计元素个数
创建:
将其它序列转换成迭代器
生成器创建
list1 =[1,34,5,2,456,35]
iter1 =iter(list1)print(iter1,type(iter1))# <list_iterator object at 0x0000022A37920BC8> <class 'list_iterator'>
2.2 获取迭代器元素
获取到迭代器中的元素,该元素在迭代器中就不存在了
2.2.1 单个
next(迭代器)
没有了就会报错
print(next(iter1))# 1print(next(iter1))# 34
2.2.2 遍历
for 变量 in 迭代器:
遍历后,迭代器也会空
iter2 =iter(range(5))for x in iter2:print(x)# 0 1 2 3 4print(list(iter2))# []
iter3 =iter(range(0,10,2))list(iter3)# print(next(iter3)) # StopIteration