python 17 作业

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

猜你喜欢

转载自www.cnblogs.com/Franciszw/p/12563346.html