如何在python中使用childclass的方法调用第二个parentclass的方法?
How to call method of second parent class using method of child class in python?
下面是我的代码:
class Parent1(object):
def __init__(self):
print "!!! ___initialization Parent1___ !!!"
def method(self):
print "*** method of Parent1 is called ***"
class Parent2(object):
def __init__(self):
print "!!! ___initialization Parent2___ !!!"
def method(self):
print "*** method of Parent2 is called ***"
class Child(Parent1,Parent2):
def __init__(self):
print "!!! ___initialization Child___ !!!"
def method(self):
super(Child,self).method()
print "*** method of Child is called ***"
Ch = Child()
Ch.method()
我想使用 child class 的 object 调用 Parent2
class 的 method()
。条件只是 child class object 应该被创建并且 child class 声明没有变化(class Child(Parent1,Parent2):
不应该改变。)
Parent2.method(self)
这就是您所需要的 - instance.method()
只是 ClassName.method(instance)
的语法糖,所以您需要做的就是在没有语法糖的情况下调用它,它会很好。
我将 Child
class 更改为:
class Child(Parent1,Parent2):
def __init__(self):
print "!!! ___initialization Child___ !!!"
def method(self):
super(Child,self).method()
print "*** method of Child is called ***"
Parent2.method(self)
并且:
# Out:
$ python c.py
!!! ___initialization Child___ !!!
*** method of Parent1 is called ***
*** method of Child is called ***
*** method of Parent2 is called ***
您完全可以得到预期的输出。
下面是我的代码:
class Parent1(object):
def __init__(self):
print "!!! ___initialization Parent1___ !!!"
def method(self):
print "*** method of Parent1 is called ***"
class Parent2(object):
def __init__(self):
print "!!! ___initialization Parent2___ !!!"
def method(self):
print "*** method of Parent2 is called ***"
class Child(Parent1,Parent2):
def __init__(self):
print "!!! ___initialization Child___ !!!"
def method(self):
super(Child,self).method()
print "*** method of Child is called ***"
Ch = Child()
Ch.method()
我想使用 child class 的 object 调用 Parent2
class 的 method()
。条件只是 child class object 应该被创建并且 child class 声明没有变化(class Child(Parent1,Parent2):
不应该改变。)
Parent2.method(self)
这就是您所需要的 - instance.method()
只是 ClassName.method(instance)
的语法糖,所以您需要做的就是在没有语法糖的情况下调用它,它会很好。
我将 Child
class 更改为:
class Child(Parent1,Parent2):
def __init__(self):
print "!!! ___initialization Child___ !!!"
def method(self):
super(Child,self).method()
print "*** method of Child is called ***"
Parent2.method(self)
并且:
# Out:
$ python c.py
!!! ___initialization Child___ !!!
*** method of Parent1 is called ***
*** method of Child is called ***
*** method of Parent2 is called ***
您完全可以得到预期的输出。