版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons)
1、主动调用其它类的成员方式一
class Base(object):
def f1(self):
print('Base.f1()')
pass
class Foo(object):
def f1(self):
Base.f1(self)
obj = Foo()
obj.f1()
通过对象调用实例方法:
obj = Base()
obj.f1()
等价于用类这样调用实例方法(不常用):
obj = Base()
Base.f1(obj)
总结:实例方法的调用可以不通过对象去调用,可以通过类调用实例方法,但是需要手动传入对象,
Base.实例方法(自己传入self)
2、主动调用其它类的成员方式一
单继承:
# coding:utf-8
class Base(object):
def f1(self):
print('Base.f1()')
pass
class Foo(Base):
def f1(self):
super().f1()
obj = Foo()
obj.f1()
'''
Base.f1()
'''
多继承:
# coding:utf-8
class Base(object):
def f1(self):
print('Base.f1()')
pass
class Foo1(object):
def f1(self):
super().f1()
class Foo2(object):
def f1(self):
print('Foo2.f1()')
class Info(Foo1, Foo2):
pass
obj = Info()
obj.f1()
'''
先找Info类中有无f1方法,Info类中没有按照继承顺序,找下一个类Foo1。
Foo1中找到f1方法,即Info类执行Foo1中的f1方法。
Foo1中的f1方法执行super().f1(),super().f1()即按照Info类的继承顺序找下一个类,
执行Foo2类中的f1方法
'''