下面代码演示了不使用装饰器实现用户登陆功能的小程序,在python3.x下可正常运行
#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Tue Nov 26 15:26:58 2019 @author: root """ def menu(): print(‘choice‘.center(50,‘-‘)) msg = ‘‘‘ 1. home 2. finance 3. book 4. exit ‘‘‘ print(msg) print("".center(50,‘-‘)) def login(login_flat,choice): if not login_flat: while True: username = str(input("username:")) password = str(input("password:")) if choice == ‘1‘: home() with open(‘jingdong.txt‘,‘r‘) as f1: for line in f1: element = line.split(" ",1) print(element[0]) print(element[1]) if username.strip() == element[0].strip() and password.strip() == element[1].strip(): print("log in successful!") return True print("failed to log in!,try it again!") elif choice == ‘2‘: finance() with open(‘weixin.txt‘,‘r‘) as f2: for line in f1: element = line.split(" ",1) if username.strip() == element[0].strip() and password.strip() == element[1].strip(): print("log in successful!") return True print("failed to log in!,try it again!") elif choice == ‘3‘: book() with open(‘jingdong.txt‘,‘r‘) as f3: for line in f3: element = line.split(" ",1) if username.strip() == element[0].strip() and password.strip() == element[1].strip(): print("log in successful!") return True print("failed to log in!,try it again!") else: print("You have logged in before!") return True #@login(login_flat,choice) def home(): print("home.....") #@login(login_flat,choice) def finance(): print("finance.....") #@login(login_flat,choice) def book(): print("book.....") login_flag = False while True: menu() choice = input("your choice:") if choice == ‘1‘: login_flag = login(login_flag,choice) elif choice == ‘2‘: login_flag = login(login_flag,choice) elif choice == ‘3‘: login_flag = login(login_flag,choice) elif choice == ‘4‘: print(‘bye-bye‘) break else: print("wrong input ,try it again!")