2020-03-05

装饰器的应用 实例

含参数的装饰器必须有三层
例子
自己写的过程中才会发现实际应用的时候各种小错不断,慢慢积累,各种细节才能体会
import time

islogin = False

def login():
username=input(‘请输入用户名:’)
password=input(‘请输入密码’)
if username==‘888’ and password==‘999’:
return True
else:
return
# bool值必须首字母大写,不然报错

islogin=false

#因为未登录从初始就认定的,所以得放到最开始
def login_required(func):
def wrapper(*args,**kwargs):
global islogin
print(‘开始付款…’)
#验证是否登录
if islogin:
func(*args,**kwargs)
else: #跳转登录界面
#islogin=login() #因为没有这个函数,我们需要定义登录函数
#这里因为对全局变量islogin进行了修改,所以需要在上边进行声明

        print('用户没有登录,不能付款!')
        #调用登录函数进行登录
        #用函数就得以固定格式
        islogin=login()
        #这里因为对全局变量islogin进行了修改,所以需要在上边进行声明
        #打印可让运行郭晨更加清晰
        print('result:',islogin)

return wrapper

@login_required
def pay(money):
print(‘正在付款’)
time.sleep(2)
print(‘付款完成…’)
print(‘您已付款{}’.format(money))

pay(1000)
pay(8000)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值