Python类reflect_x方法调用报错:'NoneType'无print属性求助
问题解决:AttributeError: 'NoneType' object has no attribute 'print'
错误原因:
你的reflect_x方法没有返回值,Python中未显式声明return的函数默认返回None。当你执行p1.reflect_x().print()时,p1.reflect_x()返回的是None,而None没有print方法,因此触发该错误。解决方案1:让
reflect_x返回实例本身,支持链式调用
修改reflect_x方法,在末尾添加return self,这样调用完reflect_x后会返回Point实例,就能继续调用print方法。同时可以简化你的reflect_x逻辑:class Point: def __init__(self,x,y): self.x=x self.y=y def reflect_x(self): # 直接将y转为负数,无需额外判断 self.y = -abs(self.y) return self # 返回当前实例,支持链式调用 def print(self): print((self.x, self.y))解决方案2:拆分链式调用,分开执行
不需要修改类方法,只需要把调用拆成两步:p1 = Point(1, 4) p1.reflect_x() p1.print() p2 = Point(-3, 5) p2.reflect_x() p2.print() p3 = Point(-3, -5) p3.reflect_x() p3.print()
内容的提问来源于stack exchange,提问作者FieldyScop
相关产品推荐
相关产品推荐

