我试图让我的代码将任何代码的结果输出到我的终端,但我似乎无法找出它为什么不能打印。我只是在学习编码,所以我在这个网站上找到了很多解释令人困惑的事情,所以如果之前有人问过这个问题我会道歉。 这是我的python文件python.py:
class point(object):
def __init__(self, x, y):
self.x = float(x);
self.y = float(y);
def __str__(self):
return("(" + self.x + "," + self.y + ")")
def main():
first = point(2,3)
if __name__ == '__main__':
main()
在终端我只是输入" python python.py"
答案 0 :(得分:1)
在main()函数中添加print语句以打印到终端:
class point(object):
def __init__(self, x, y):
self.x = float(x);
self.y = float(y);
def __str__(self):
return("(" + self.x + "," + self.y + ")")
def main():
first = point(2,3)
print(first)
if __name__ == '__main__':
main()
答案 1 :(得分:0)
正如其他人所提到的,你需要在main函数中添加一个print()调用才能输出到终端。另外,还有一些需要注意的事项:Python不需要分号,因此在__init __()方法中不需要它们,并且你不能隐式地将浮点数转换为字符串,所以你必须在__str__中显式化。 () 方法。
class point(object):
def __init__(self, x, y):
self.x = float(x)
self.y = float(y)
def __str__(self):
# explicitly cast floats to strings
return "(" + str(self.x) + "," + str(self.y) + ")"
def main():
first = point(2,3)
print(first)
if __name__ == '__main__':
main()
此外,正如MrTrustworthy指出的那样,您不需要直接调用Class .__ str __(),因为print首先调用与该类关联的__str __()方法。如果没有这样的方法并且隐式转换失败,那么您将获得调用函数的表示和内存中的地址。
如果从示例中删除__str __(),如果尝试打印对象,则应输出如下所示的输出:<__main__.point object at 0x7f184cec4b70>
。