下面代码演示了不使用装饰器实现用户登陆功能的小程序,在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!")
12-28 03:36