zoukankan      html  css  js  c++  java
  • 函数小练习

    flage = 0
    def wapper(fun):#fun是被装饰的函数   #wapper是给fun装饰函数的装饰器函数
        def inner(*args,**kwargs):#接收任意类型的参数
            global flage #局部变量变成全局变量
            #登录功能
    
            if flage==1:
                ret = fun(*args,**kwargs) #fun是被装饰的函数
                return ret
            else:
                username=input('请输入用户名:')
                password=input('请输入密码')
                if username=='aaa'and password=='123456':
                    flage=1#登录成功设置为1用global
                    ret=fun(*args,**kwargs)
                    return ret#函数fun返回值
                else:
                    print('登录失败')
        return inner#返回函数名()
    
    @wapper#等同于shopp_add=wapper(shopp_add)
    def shopp_add():
        print('增加一个物品')
    @wapper#等于shopp_del=wapper(shopp_del)
    def shopp_del():
        print('删除一个物品')
    
    shopp_add()
    shopp_del()
    
    运行结果:
    请输入用户名:Mr.Gao
    请输入密码123456
    增加一个物品
    删除一个物品
    
    def log(fun):
        def inner(*args,**kwargs):
            res=fun(*args,**kwargs)
            with open('log.txt','a') as f: #a代表给文件追加内容
                f.write(fun.__name__+'
    ')
            return res
        return inner
    @log#等同于shoplist_add=kwargs(shoplist_add)
    def shoplist_add():
        print('增加一个物品')
    
    @log
    def shoplist_del():
        print('删除一个物品')
    shoplist_add()
    shoplist_del()
    shoplist_add()
    shoplist_del()
    
    运行结果:
    增加一个物品
    删除一个物品
    增加一个物品
    删除一个物品
    
  • 相关阅读:
    C# 请求API(一次登陆,多次请求)
    C# WebAPI 跨域问题Cors
    正则表达式校验YYYYMMDD
    C# 通过Smtp 完成系统发送邮件
    C# Log4Net 记录项目日志
    C# 自定义Attribute
    C#泛型
    SQL从数据库导出数据到EXCEL换行的问题解决方法
    C# 在MVC 中把DataTable中的数据导出到Excel
    闹心的CSDN
  • 原文地址:https://www.cnblogs.com/gfhh/p/11601006.html
Copyright © 2011-2022 走看看