【Python】主动调用其他类的方法

  • Post author:
  • Post category:python


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 版权协议,转载请附上原文出处链接和本声明。