打印到PyD中的控制台

2024-05-14 22:49:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我是《日蚀》中的PyDev新手。 在编写简单程序时,我经常使用print()语句来跟踪变量的值。我想把这些值打印到控制台上,但是到目前为止我还没有在控制台上打印任何值。

这里有一段简单的代码来演示我要做的事情。

class MyClass(object):

  def __init__(self):

    myClassObject= MyClass()
    myClassObject.greet()


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

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

提前谢谢


Tags: 代码self程序objectdefmyclass语句stackoverflow
3条回答

您尚未实例化该类。为了从你得到的东西中产生输出,请尝试以下操作:

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的类用法。

在实例化类时调用__init__(cf.this question)。在代码段末尾添加my_instance = MyClass()将创建MyClass类的实例,并应打印出所需的内容:

class MyClass(object):

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

my_instance = MyClass()

我刚刚了解到,问题中的代码部分没有意义,因为我已经在__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()

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

相关问题 更多 >

    热门问题