函数作业(1未)

# from functools import wraps   装饰器边边角角__name__查看被装饰原函数名地址  __doc__查看函数备注
# import time
# time.strftime('%Y-%m-%d %X')

# 作业:
# 1、编写课上讲解的有参装饰器准备明天默写

# def ato(dsa):
#     def deco(func):
#         def warpper(*args,**kwargs):
#             account=input("请输入账号")
#             pwd=input("请输入密码")
#             if dsa=="file":
#                 print("基于文件打开")
#                 if account=="taoge" and pwd=="123":
#                     print("登陆成功")
#                     res=func(*args,**kwargs)
#                     return res
#                 else:
#                     print("登录失败")
#             elif dsa=="mysql":
#                 print("基于数据库打开")
#         return warpper
#     return deco
# @ato(dsa="file")
# def long(x,y,z):
#     print("到达函数{}{}{}".format(x,y,z))
#     return "成功返回"
# res=long(123,456,789)
# print(res)

 


# 2:还记得我们用函数对象的概念,制作一个函数字典的操作吗,来来来,我们有更高大上的做法,在文件开头声明一个空字典,然后在每个函数前加上装饰器,完成自动添加到字典的操作
# dic={}
# def my_add(x):
#     def my_adddic(func):
#         dic[x] = func
#         def warpper(*args,**kwargs):
#             res=func(*args,**kwargs)
#             return res
#         return warpper
#     return my_adddic
# @my_add("登陆者")
# def adde():
#    pass
#     # dic.update(name=x ,mima=y)        #字典添加值得方法以 update
# @my_add("name")
# def app():
#     pass
#
# adde()
# print(dic["登陆者"].__name__)    #查看函数名
# app()
# print(dic["name"].__name__)

 


# 3、 编写日志装饰器,实现功能如:一旦函数f1执行,则将消息2017-07-21 11:12:11 f1 run写入到日志文件中,日志文件路径可以指定
# 注意:时间格式的获取

# import time
# time.strftime('%Y-%m-%d %X')
# def tail():
import time
def tail(func):
    def warpper():
        now_time =  time.strftime('%Y-%m-%d %X')                #获取当前时间
        func_name = func.__name__
        res=func()
        jieshou=f' {now_time}{func_name} run\n'          #f"{}{}记得用花括号"
        with open("log.txt",mode="a",encoding="utf8")as f:
            f.write(
                jieshou
            )
        print(now_time,func_name)
        return res
    return warpper                      #注意别加括号
@tail
def indea():
   print("123")

indea()

 



# 4、基于迭代器的方式,用while循环迭代取值字符串、列表、元组、字典、集合、文件对象
# l=[1,2,5,6,]
# res=l.__iter__()
# while True:
#     try:
#         print(res.__next__())
#     except StopIteration:            #   判断出异常退出  stopiteration
#         break

 


# 5、自定义迭代器实现range功能
# def my_range(start,stop,step=1):
#     while start<stop:
#         yield start
#         start+=step
# for i in my_range(1,50):
#     print(i)

 


#
#
#
# ====================本周选做作业如下====================
# 编写小说阅读程序实现下属功能
# # 一:程序运行开始时显示
# 0 账号注册
# 1 充值功能
# 2 阅读小说
#
#
# # 二: 针对文件db.txt,内容格式为:"用户名:密码:金额",完成下述功能
# 2.1、账号注册
# 2.2、
posted @ 2021-03-16 21:45  欧阳锦涛  阅读(38)  评论(0)    收藏  举报
TOP 底部