1、编写课上讲解的有参装饰器准备明天默写
2:还记得我们用函数对象的概念,制作一个函数字典的操作吗,来来来,我们有更高大上的做法,在文件开头声明一个空字典,然后在每个函数前加上装饰器,完成自动添加到字典的操作
def wraper(func):
def add_dic(*args,**kwargs):
dic={}
number=0
func_dic={number,func1()}
dic.update(func_dic)
return dic
return add_dic
@wraper
def func1():
pass
@wraper
def func2():
pass
@wraper
def func3():
pass
@wraper
def func4():
pass
func1()
3、 编写日志装饰器,实现功能如:一旦函数f1执行,则将消息2017-07-21 11:12:11 f1 run写入到日志文件中,日志文件路径可以指定
注意:时间格式的获取
def log(func):
def wrapper(*args,**kwargs):
res=f1(*args,**kwargs)
import time
run_time=time.strftime('%Y-%m-%d %X')
with open('db.txt',mode='at',encoding='utf-8') as file:
run_time=f'{run_time}\n'
file.write(run_time)
return wrapper
@log
def f1(x,y):
res=x+y
print(res)
return res
log(x,y)
4、基于迭代器的方式,用while循环迭代取值字符串、列表、元组、字典、集合、文件对象
l=[1,2,3,4,5]
l_iterator=l.__iter__()
while True:
try:
print(l_iterator.__next__())
except StopIteration:
break
5、自定义迭代器实现range功能
def range (start,end,step=1):
while start<end:
start+=step
yield