编写Python Person类时遇到AttributeError属性错误该如何修复?
Python Person类AttributeError报错修复方案
报错根本原因
代码存在3处核心错误直接触发属性错误:
- 未实例化
Person类:input()返回的是字符串类型变量n/a/p,字符串本身不存在get_person()/get_address()/get_phone()方法,调用非自身属性的方法直接触发AttributeError - 类定义缺失
get_person()方法:代码中调用的get_person()没有在Person类中实现 - getter方法逻辑错误:已实现的
get_name()/get_address()/get_phone()仅返回固定提示文本,没有返回对应存储的属性值
修复步骤
- 修正Person类的getter方法,让其返回提示文本+对应属性值
- 在main函数中拿到输入的三个参数后,先实例化Person类得到实例对象
- 用Person实例调用对应的getter方法输出结果
修复后完整代码
class Person: def __init__(self, n, a, p): self.name = n self.address = a self.phone = p def set_name(self, n): self.name = n def set_address(self, a): self.address = a def set_phone(self, p): self.phone = p def get_name(self): return f'Customer Name: {self.name}' def get_address(self): return f'Customer Address: {self.address}' def get_phone(self): return f'Customer Phone Number: {self.phone}' def main(): n = input('Enter Customer Name: ') a = input('Enter the Customer Address: ') p = input('Enter the Customer Phone Number: ') # 实例化Person类 person = Person(n, a, p) # 用实例调用对应方法 print(person.get_name()) print(person.get_address()) print(person.get_phone()) main()
内容的提问来源于stack exchange,提问作者BeanBagels
相关产品推荐
相关产品推荐

