1 创建对象并调用方法的两种方式
"""
class Base(object):
def f1(self):
print('5个功能')
# obj = Base()
# Base.f1(obj) #一般不用这种方法调用类中对象的方法
obj = Base()
obj.f1()
2 主动调用类中的方法
# ########### 方式一
# class Base(object):
#
# def f1(self):
# print('5个功能')
#
# class Foo(object):
#
# def f1(self):
# print('3个功能')
# Base.f1(self) #主动调用Base类的f1方法,两个类并无继承关系
#
# obj = Foo()
# obj.f1()
# ########### 方式二:按照类的继承顺序,找下一个.
"""
class Base(object): #单继承
def f1(self):
print('5个功能')
class Foo(Base):
def f1(self):
super().f1()
#super(Foo, self).f1()
print('3个功能')
obj = Foo()
obj.f1()
"""
# ########### 方式二:按照类的继承顺序,找下一个.
# class Foo(object):
# def f1(self):
# super().f1() #super是当前所在类的对象父类(或按继承关系)
# print('3个功能')
#
# class Bar(object):
# def f1(self):
# print('6个功能')
#
# class Info(Foo,Bar): #多继承
# pass
#
# # obj = Foo()
# # obj.f1()
#
# obj = Info()
# obj.f1() #先找Info类中的f1方法,没有则去Foo里面找,执行Foo类中的f1方法,注意f1中的super方法执行是按Info类的继承顺序来的,及执行Bar中的f1方法
print(Info.__mro__) #打印继承顺序
复杂的多继承遵循C3算法
版权声明:本文为u011035397原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。