python之装饰器应用

下面的一个例子实现的一个功能是跳转登陆,根据用户输入,让用户首次登陆后,记录登陆状态,下次无须登陆。还可以根据装饰器参数选择登陆模式。

#帐号,密码存储。这里为了方便直接明文了。
user,passwd = 'aaa','123'
weixin = '1'


login_status = False
def login_else(log='jd'):
    def login(h):
        def fun():
            global login_status                     #定义全局变量
            if login_status == False:               #首次登陆判断
                if log == 'jd':                     #登陆模式判断
                    username = input('usernaem :')
                    passwds = input('passwd:')
                    if user == username and passwd == passwds:      #验证用户名和密码
                        print('welcome...')
                        login_status = True         #更改登陆状态为True
                        h()                         #执行定义的home() OR finance() OR book() ...
                    else:
                        print('帐号或密码错误,登录失败...')
                elif log == 'wx':
                    username = input('验证码 :')
                    if weixin == username :
                        print('welcome...')
                        login_status = True
                        h()
                    else:
                        print('帐号或密码错误,登录失败...')
            else:
                h()
        return fun
    return login
#下面是定义了三个功能函数
@login_else('jd')
def home():
    print('欢迎进入Home界面')

@login_else('wx')
def finance():
    print('你需要什么金融产品?')

@login_else()
def book():
    print('多读书,少玩手机。')

#执行过程
print('1. home')
print('2. finance')
print('3. book')
while True:
    key_num = input('请输入您要进入页面前的数字:')
    if key_num == '1':
        home()
    elif key_num == '2':
        finance()
    elif key_num == '3':
        book()



阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页