classBaseClass1:def__init__(self):self.name1='BaseClass1_Name1'self.name='BaseClass1_Name'print('BaseCalss1:Constructorcalled')defgetname(self):print('BaseCalss1:getnamec...
class BaseClass1:
def __init__(self):
self.name1 = 'BaseClass1_Name1'
self.name = 'BaseClass1_Name'
print('BaseCalss1: Constructor called')
def getname(self):
print('BaseCalss1: getname called, name equal ' + self.name)
class BaseClass2:
def __init__(self):
self.name2 = 'BaseClass2_Name2'
self.name = 'BaseClass2_Name'
print('BaseClass2: Constructor called')
def getname(self):
print('BaseCalss2: getname called, name equal ' + self.name)
class DerivedClass2(BaseClass1, BaseClass2):
def __init__(self):
BaseClass1.__init__(self)
BaseClass2.__init__(self)
print('DerivedClass: Constructor called')
if __name__ == '__main__':
class3 = DerivedClass2()
class3.getname()
这个是运行结果:
BaseCalss1: Constructor called
BaseClass2: Constructor called
DerivedClass: Constructor called
BaseCalss1: getname called, name equal BaseClass2_Name
最后一个运行结果为什么不是
BaseCalss1: getname called, name equal BaseClass1_Name
不是调用了第一的基类的方法和他的self.name属性了吗?为什么输出属性却是第二个基类的self.name?
展开