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()
    
    运行结果:
    增加一个物品
    删除一个物品
    增加一个物品
    删除一个物品
    
  • 相关阅读:
    【NOIP2011】观光公交
    【NOIP2014】飞扬的小鸟
    HDU
    [Tyvj 1728]普通平衡树
    【NOIP2012】 疫情控制
    洛谷P1613 跑路
    [HNOI2002]营业额统计
    3486 ( Interviewe )RMQ
    poj2019 二维RMQ裸题
    动态规划专题
  • 原文地址:https://www.cnblogs.com/gfhh/p/11601006.html
Copyright © 2011-2022 走看看