You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编写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()仅返回固定提示文本,没有返回对应存储的属性值

修复步骤

  1. 修正Person类的getter方法,让其返回提示文本+对应属性值
  2. 在main函数中拿到输入的三个参数后,先实例化Person类得到实例对象
  3. 用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 23:36:03