我是Eclipse中PyDev的新手。 编写简单程序时,我会定期使用print()语句来跟踪变量的值。我希望将这些值打印到控制台,但到目前为止我无法在控制台中打印任何值。
这是一段简单的代码,用于演示我正在尝试做的事情。
class MyClass(object):
def __init__(self):
myClassObject= MyClass()
myClassObject.greet()
def greet(self):
print("stackoverflow is the best !!!")
我希望在控制台中看到字符串“ stackoverflow是最好的!!! ”,但是当我运行代码时,我什么也得不到。我该怎么办?
提前致谢
答案 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.7或Python 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()
上面的代码很有意义,它会毫无问题地输出到控制台。