我试图让一个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"声明,但后来没有。
答案 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
希望有所帮助。