我编写了一个代码,该代码应该返回经过两点的直线的方程式,并且可以正常工作,但在bash中,它也会出现这条直线,我不知道这意味着什么。该代码另存为Exercise_2.py,其中有两个类(点和线)。
这是我的代码:
班级积分:
def __init__(self,x,y,):
self.x=x
self.y=y
课程行:
def __init__(self,m,q,):
self.m=m
self.q=q
print(f"y={m}x+{q}")
这是我运行代码后看到的:
y = 3x + 2
感谢任何人向我解释它,并感谢您的宝贵时间。
P.S。也许我正在发现问题。我应该使用 repr 方法,但是我试图找出原因
答案 0 :(得分:0)
将类传递给打印函数时,它将打印该对象的表示形式。您可以通过在类中添加__repr__
方法并返回一个字符串来修改打印时显示的内容。
class Line:
def __init__(self,m,q):
self.m=m
self.q=q
print(f"y={m}x+{q}")
def __repr__(self):
return f"y={self.m}x+{self.q}"
print(Line(3,2))
但是,由于它也在init方法中运行,因此它将打印两次输出,因此可以将其删除。
正如我在上面的评论中所述,当您从类创建对象时,如果存在,它将运行您的 init 方法。由于您的 init 方法包含一个打印函数,因此可以打印该函数,但是由于您还打印了对象本身,因此它试图打印该对象的某种表示形式。由于未定义任何内容,因此它会打印python对象的默认表示形式。
如果您需要更多详细信息。我可以尝试并更好地解释。