在python

时间:2017-09-28 16:26:36

标签: python macos terminal output

我试图让我的代码将任何代码的结果输出到我的终端,但我似乎无法找出它为什么不能打印。我只是在学习编码,所以我在这个网站上找到了很多解释令人困惑的事情,所以如果之前有人问过这个问题我会道歉。 这是我的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"

2 个答案:

答案 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>