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

Python创建类对象时出现AttributeError的排查与解决方法

问题原因及解决方法

1. 构造函数定义错误

你的User类里的构造函数存在两处错误:

  • 正确的构造函数名是__init__(前后各两个下划线),你写成了def_init_,不仅下划线数量不对,def和init之间还缺少空格,导致Python无法识别这是类的构造函数。
  • 构造函数未被执行,实例化kay时self.name、self.email、self.age这些属性根本没被赋值,调用greeting时自然会触发AttributeError。

2. 方法缩进错误

greeting函数的缩进不正确,它目前是定义在User类外部的普通函数,而非类的成员方法。类的方法必须缩进在类的内部,这样实例才能正常调用它。

修正后的完整代码

class User:
    def __init__(self, name, email, age):
        self.name = name
        self.email = email
        self.age = age

    def greeting(self):
        return f'My name is {self.name} and I am {self.age} years old, you can contact me at {self.email}'

kay = User('Kayboy', 'kayboy@gmail.com', 18)
print(kay.greeting())

额外注意事项

  • 类的所有成员方法必须保持正确缩进(通常为4个空格),确保属于类的内部成员。
  • 构造函数__init__是Python类初始化实例的固定方法名,必须严格遵守前后各两个下划线的格式,不能写错。

内容的提问来源于stack exchange,提问作者Kayboy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 03:10:58