下面的一个例子实现的一个功能是跳转登陆,根据用户输入,让用户首次登陆后,记录登陆状态,下次无须登陆。还可以根据装饰器参数选择登陆模式。
#帐号,密码存储。这里为了方便直接明文了。
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()