"""
需求:登录CSDN社区成功后,才可以访问"博客"、"课程"、"问答"等页面
已有账户文件 csdn 及账户密码:
albert|123456
don|456
jack|789
"""
# 记录用户登录状态的字典
user_status = {'usname': None,
'status': False}
def get_userpwd():
user_dict = {}
with open('csdn', encoding='utf-8', mode='r') as f:
for line in f:
user, pwd = line.strip().split('|')
user_dict[user] = pwd
return user_dict
def csdn_login():
userpwd_dict = get_userpwd()
count = 1
while count < 4:
username = input('请输入您的用户名:').strip()
password = input('请输入您的密码: ').strip()
if username in userpwd_dict and userpwd_dict[username] == password:
print(f'登录成功,欢迎您{username}')
user_status['usname'] = username
user_status['status'] = True
return True
else:
print(f'对不起,您输入的用户名或者密码错误,剩余机会{3-count}次!')
count += 1
return False
# 装饰器,只有登录成功后,才可以进行访问
def csdn_decorator(func):
def inner(*args, **kwargs):
if user_status['status']:
ret = func(*args, **kwargs)
return ret
else:
if csdn_login():
ret = func(*args, **kwargs)
return ret
return inner
@csdn_decorator
def csdn_blog():
print('欢迎访问“博客”首页!!!')
@csdn_decorator
def csdn_course():
print('欢迎访问“课程”首页!!!')
@csdn_decorator
def csdn_quest_ans():
print('欢迎访问“问答”首页!!!')
# 登录成功后,才可以访问博客首页
csdn_blog()
# 登录成功后,才可以访问课程首页
csdn_course()
# 登录成功后,才可以访问课程首页
csdn_quest_ans()