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

Python自定义Point类调用reflect_x报'NoneType'无print属性问题

问题原因分析
  • 报错的核心原因是reflect_x方法没有显式返回值,Python中函数无显式return时默认返回None,链式调用reflect_x().print()时相当于尝试调用None的print方法,自然触发属性不存在的错误
  • 原有reflect_x方法逻辑错误:直接在方法内打印结果,没有修改实例的y坐标属性,也没有返回实例对象,不符合链式调用的要求
修复后的代码
class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y
    def print(self):
        print((self.x, self.y))
    def reflect_x(self):
        # x轴镜像直接对y取反即可,无需额外判断正负
        self.y = -self.y
        # 返回当前实例,支持链式调用
        return self

if __name__ == "__main__":
    p1 = Point(1,4)
    p1.reflect_x().print()

    p2 = Point(-3,5)
    p2.reflect_x().print()

    p3 = Point(-3,-5)
    p3.reflect_x().print()
输出验证

运行上述代码会直接输出期望结果:

(1, -4)
(-3, -5)
(-3, 5)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 03:18:02