在PyDev中打印到控制台
我是Eclipse中PyDev的新手。 在编写简单程序时,我经常使用print()语句来跟踪变量的值。我希望将这些值打印到控制台,但到目前为止,我无法在控制台中获得任何值。在PyDev中打印到控制台
下面是一段简单的代码来演示我正在尝试做什么。
class MyClass(object):
def __init__(self):
myClassObject= MyClass()
myClassObject.greet()
def greet(self):
print("* is the best !!!")
我期待看到字符串“计算器是最好的!”在控制台,但是当我运行代码,我什么都得不到。我应该做些什么?
在此先感谢
您尚未实例化类。为了从你有尝试以下所产的输出:
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("* is the best !!!")
if __name__ == '__main__':
instance = MyClass()
您的示例似乎过于复杂。你最好在Python中查看Python 2.7或Python 3.3的类使用情况。
'if __name__ =='__main __':'在我使用Module:main时出现。但是在课堂上,我有主要的方法。 (即'def __init __(self):') 当我使用主模块时,一切正常,但是当我在__init __(self)内部打印()时会出现问题。 我实例化一个对象,但仍然是控制台是空白的。任何想法? – 2013-02-12 14:09:00
__init__
在实例化类时调用(参见this question)。在你的代码段的末尾添加my_instance = MyClass()
将创建MyClass
类的一个实例,应打印出你想要的东西:
class MyClass(object):
def __init__(self):
print("* is the best !!!")
my_instance = MyClass()
你能“打印”任何东西吗?还是仅仅这个例子不起作用? – mtth 2013-02-12 13:54:08
好我试过了,遗憾的是它不工作 'MyClass类(对象): 高清__init __(个体经营): my_class = MyClass的() my_class。迎接() 高清迎接(个体经营): 打印(的“Hello World”) ' – 2013-02-12 13:55:55
是@mtth,这是我担心的,我无法打印任何东西 – 2013-02-12 13:57:03
我刚刚了解到,这个问题我的代码部分是毫无意义的,因为我已经实例化对象__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()
上面的代码有意义,它会输出到控制台,而不问题。
代码在您调用时进行评估。 – alinsoar 2013-02-12 13:46:18
好的,在我的问题中出现了没有实例化类对象的混淆,我解决了它。请注意,问题不在初始化对象实例 – 2013-02-12 14:13:42