用装饰器实现简单的登录

login_status = False
msg = '''1.home
2.finance
3.book'''

def login(auth_type):
def func(fun):
def inner():
global login_status
if login_status == False:
username = input('username>>>')
passwd = input('passwd>>>')
if auth_type == 'jingdong':
with open('passwd.txt','r') as f :
text = f.read().split(';')
if username == text[0] and passwd == text[1]:
print('welcome')
fun()
login_status = True
else:
print('wrong')
elif auth_type == 'weicin':
with open('text.txt','r') as f :
if username == text[0] and passwd == text[1]:
print('welcome')
fun()
login_status = True
else:
print('wrong')
return inner
return func

@login(auth_type = 'jingdong')
def home():
print('home')

@login(auth_type = 'weixin')
def finance():
print('finance')

@login(auth_type = 'jingdong')
def book():
print('book')




while True:
print(msg)
a = input('>>>')
if a == '1':
home()
elif a == '2':
finance()
elif a == '3':
book()

猜你喜欢

转载自www.cnblogs.com/wangliang666/p/9402507.html