[英]How to call method of second parent class using method of child class in python?
Below is my code: 下面是我的代码:
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()
I want to call method()
of Parent2
class using object of child class. 我想使用子类的对象来调用Parent2
类的method()
。 Conditions are only child class object should be created and no change in child class declaration ( class Child(Parent1,Parent2):
should not changed.) 条件是仅应创建子类对象,并且子类声明中不得更改( class Child(Parent1,Parent2):
不应更改。)
Parent2.method(self)
That's all you need - the instance.method()
is just syntactic sugar for ClassName.method(instance)
, so all you need to do is call it without the syntactic sugar and it'll do fine. 这就是您所需要的instance.method()
只是ClassName.method(instance)
语法糖,因此您所需要做的就是在不使用语法糖的情况下调用它,它会做的很好。
I changed the Child
class to this: 我将Child
类更改为:
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)
And: 和:
# Out:
$ python c.py
!!! ___initialization Child___ !!!
*** method of Parent1 is called ***
*** method of Child is called ***
*** method of Parent2 is called ***
You get the expected output perfectly fine. 您将获得预期的输出,效果非常好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.