从对象内打印

时间:2014-04-15 10:24:14

标签: python methods printing

我试图让一个python对象继承另一个。我写了一个脚本来测试事情是否有效(见下文)。但是,当我尝试访问这些对象中的方法时,没有任何内容被打印出来,我无法理解为什么。有人能指出我正确的方向吗?

print("hello world")

class parent():
    def helloWorld(self, ):
        print("hello World1")

class child(parent):
    def helloWorld2(self, ):
        print("hello World2")

parentOBJ = parent()
childOBJ = child()


parentOBJ.helloWorld
childOBJ.helloWorld
childOBJ.helloWorld2

上面的代码打印出第一个" hello world"声明,但后来没有。

2 个答案:

答案 0 :(得分:4)

您没有调用这些方法。如果要调用它们,请在每种方法后添加()。否则,您的解释器将仅返回对象的类型。

parentOBJ.helloWorld()
childOBJ.helloWorld()
childOBJ.helloWorld2()

但是,您还必须修复类定义:

class parent(object): # All classes should inherit from the object-class
    def helloWorld(self): # unless you have other arguments besides self, remove the comma.
        print("hello World1")

class child(parent):
    def helloWorld2(self):
        print("hello World2")

示例:

>>> parentOBJ = parent()
>>> childOBJ = child()
>>> parentOBJ.helloWorld()
hello World1
>>> childOBJ.helloWorld()
hello World1
>>> childOBJ.helloWorld2()
hello World2

答案 1 :(得分:3)

您只是引用这些方法,而不是实际来调用它们。

请改为:

parentOBJ.helloWorld()
childOBJ.helloWorld()
childOBJ.helloWorld2()

当您调用某个函数时,您必须执行method_name(arguments)

因此,如果我有一个名为def hello(a, b):的方法,我实际上也需要将参数传递给函数,如下所示:hello('hello', 'world')

实施例

>>> def hello(): 
...     print 'hello' 
...  
>>> hello
<function hello at 0x2340bc>
>>> hello()
hello

希望有所帮助。