Python中使用面向对象实现用户的注册与登录

· Special

Python中使用面向对象实现用户的注册与登录

代码实现

#用户注册登录
class User:
    def __init__(self, name, pwd):
        self.name = name
        self.pwd = pwd


class Account:
    def __init__(self):
        # 用户列表,数据格式:[user对象,user对象,user对象]
        self.user_list = []

    def login(self):
        """
        用户登录,输入用户名和密码然后去self.user_list中校验用户合法性
        :return:
        """
        while True:
            user_input = input('请输入您的姓名: (q/Q退出)').strip()
            if user_input.upper() == 'Q':
                break
            pwd_input = input('请输入您的密码: ').strip()
            for user in self.user_list:
                if user.name == user_input and user.pwd == pwd_input:
                    print('登录成功')
                    break
            else:
                print('登录失败')


    def register(self):
        """
        用户注册,没注册一个用户就创建一个user对象,然后添加到self.user_list中,表示注册成功。
        :return:
        """
        #将account识别为模板
        while True:
            user_input = input('请输入您的姓名: (q/quit退出)').strip()
            if user_input.upper() == 'Q':
                break
            pwd_input = input('请输入您的密码: ').strip()
            o1 = User(user_input, pwd_input)
            #判断是否为在用户列表内
            for user in self.user_list:
                if user.name == user_input:
                    print('用户名重复,请重试')
                    continue
            self.user_list.append(o1)


    def run(self):
        """
        主程序
        :return:
        """
        func1 = {
            '1': {'title':'登录','func':self.login},
            '2':{'title':'注册','func':self.register},
        }
        messages = ';'.join([f'{k}-{v["title"]}' for k,v in func1.items()])

        while True:
            print(messages)
            func_choice = input('请输入功能选项: (q/Q退出))').strip()
            if func_choice.upper() == 'Q':
                break

            #判断输入
            # TODO

            func1[func_choice][1]()







if __name__ == '__main__':
    obj = Account()
    obj.run()

python


评论

行为验证™ 安全组件加载中...