在PyDev中打印到控制台

时间:2013-02-12 13:32:16

标签: python eclipse console pydev

我是Eclipse中PyDev的新手。 编写简单程序时,我会定期使用print()语句来跟踪变量的值。我希望将这些值打印到控制台,但到目前为止我无法在控制台中打印任何值。

这是一段简单的代码,用于演示我正在尝试做的事情。

class MyClass(object):

  def __init__(self):

    myClassObject= MyClass()
    myClassObject.greet()


    def greet(self):
       print("stackoverflow is the best !!!")

我希望在控制台中看到字符串“ stackoverflow是最好的!!! ”,但是当我运行代码时,我什么也得不到。我该怎么办?

提前致谢

3 个答案:

答案 0 :(得分:2)

您尚未实例化该课程。为了从您所获得的产品中产生输出,请尝试以下方法:

if __name__ == '__main__':
  instance = MyClass()

- 已修订 -

根据您重写的代码,您应该具有以下内容:

class MyClass(object):
    def __init__(self):
        #myClassObject= MyClass() # Causes recursion error.
        #myClassObject.greet() # You should not be accessing your instance method this way
        self.greet()


    def greet(self):
        print("stackoverflow is the best !!!")

if __name__ == '__main__':
    instance = MyClass()

您的示例似乎过于复杂。您最好在Python中查看Python 2.7Python 3.3的类使用情况。

答案 1 :(得分:0)

在实例化类时调用

__init__(参见this question)。在代码段末尾添加my_instance = MyClass()将创建MyClass类的实例,并打印出您想要的内容:

class MyClass(object):

  def __init__(self):
    print("stackoverflow is the best !!!")

my_instance = MyClass()

答案 2 :(得分:0)

我刚刚了解到问题中的代码部分没有意义,因为我已经在__init__(self)中实例化了对象。因此,必须在if __name__ == '__main__':内创建对象。

我已经写了一个完整的模块来演示这个。 (观察Classes.py模块中有多个类,然后在代码的第二部分导入它)

'''
Classes.py
'''


class MyClass(object):  


    def greet(self):
        print("Hello World")


class MyNextClass(object):

        def greetAgain(self):
            print("Hello again")

'''
MyMain.py
'''
import Classes

if __name__ == '__main__':

    a=Classes.MyClass()
    a.greet()

    b=Classes.MyNextClass();
    b.greetAgain()

上面的代码很有意义,它会毫无问题地输出到控制台。