调用Info类实现基础登录功能时print语句无输出如何解决
登录功能问题修复说明
核心错误点
- 构造方法语法错误:Python类的构造方法为双下划线包裹的
__init__,原代码构造方法拼写格式错误,无法正常初始化类属性 - 继承逻辑错误:Login类未继承Info类,却在构造方法中调用
super().__init__(),逻辑无效 - 校验方法未触发:仅定义了登录校验的
check()方法,未实例化Login类、也未主动调用校验方法,因此不会执行对应的打印逻辑 - Info类参数冗余:用户名和密码通过first、last参数自动生成,额外传入的username、password参数没有实际作用
修复后可运行代码
class Info: def __init__(self, first, last): self.first = first self.last = last # 自动生成用户名和密码 self.username = first + "." + last self.password = first + "_" + last + "123" # 生成校验用的基准账号 inf_1 = Info("Bob", "Scott") class Login: def __init__(self, valid_username, valid_password): # 存入Info类生成的正确账号密码作为校验基准 self.valid_username = valid_username self.valid_password = valid_password def check(self, input_username, input_password): if self.valid_username == input_username and self.valid_password == input_password: print("Login successful") else: print("Unsuccessful Login") # 获取用户输入 log_name = input("Enter your user Username: ") log_pass = input("Enter Password: ") # 实例化校验类、调用校验方法触发输出 login_checker = Login(inf_1.username, inf_1.password) login_checker.check(log_name, log_pass)
测试说明
当前配置下正确用户名为Bob.Scott,正确密码为Bob_Scott_123,输入对应内容即可触发成功提示。
内容的提问来源于stack exchange,提问作者Let_G_90
相关产品推荐
相关产品推荐

