class Base1():
def __init__(self, name):
self._name = name
print("name", self._name)
def my_func(self):
print(self._name)
class Base2():
def __init__(self, age):
self._age = age
print("age",self._age)
def my_func(self):
print(self._age)
class Son(Base1, Base2):
def __init__(self, name, age):
super(Son, self).__init__(age)
super(Son, self).__init__(name)
def my_func(self):
print("son")
c = Son("ls", 20)
c.my_func()
class Son1(Base1, Base2):
def __init__(self, name, age):
Base1.__init__(self, name)
Base2.__init__(self, age)
def my_func(self):
print("son")
c1 = Son1("ls", 20)
c1.my_func()
class Son2(Base1, Base2):
def __init__(self, name, age):
super().__init__(name)
super().__init__(age)
def my_func(self):
print("son")
c1 = Son2("ls", 20)
c1.my_func()
总结:多继承,使用基类名称调用__init__进行初始化父类
class MyBaseClass:
def __init__(self, value):
self.value = value
class TimesFive(MyBaseClass):
def __init__(self, value):
MyBaseClass.__init__(self, value)
self.value *= 5
class PlueTwo(MyBaseClass):
def __init__(self, value):
MyBaseClass.__init__(self, value)
self.value +=2
class Test(TimesFive, PlueTwo):
def __init__(self, value):
TimesFive.__init__(self, value)
PlueTwo.__init__(self, value)
test = Test(5)
print(test.value)
class TimesFiveCorrect(MyBaseClass):
def __init__(self, value):
super(TimesFiveCorrect, self).__init__(value)
self.value *= 5
class PlusTwoCorrect(MyBaseClass):
def __init__(self, value):
super(PlusTwoCorrect, self).__init__(value)
self.value += 2
class TestSuper(TimesFiveCorrect, PlusTwoCorrect):
def __init__(self, value):
super(TestSuper, self).__init__(value)
test1 = TestSuper(5)
print(test1.value)
from pprint import pprint
pprint(TestSuper.mro())