#父类(基类)
class Base:
def f1(self):
print("yang")
#子类(派生类)
class Foo(Base):
def f2(self):
print("zi")
#or
def f1(self):
print("liang")
#创建一个子类的对象
obj = Foo()
#执行对象,方法时,优先在自己的类中找,如果没有就在父类中找
obj.f2()
obj.f1()#在父类中寻找,如果子类中有f1则在优先用自己的
#父类不能继承子类
#示例一
#父类
class Base:
def f1(self):
print("base.f1")
#子类
class Foo(Base):
def f2(self):
self.f1() #此处的self为obj
print("foo.f2")
obj = Foo()
obj.f2()
#示例二
#父类
class Base:
def f1(self):
print("base.f1")
#子类
class Foo(Base):
def f2(self):
self.f1() #此处的self为obj
print("foo.f2")
def f1(self):
print("foo.f1")
obj = Foo()
obj.f2()
#结果
#foo.f1
#foo.f2
#示例三
#父类
class Base:
def f1(self):
self.f2()
print("base.f1")
def f2(self):
print("base.f2")
#子类
class Foo(Base):
def f2(self):
print("foo.f2")
obj = Foo()
obj.f1()
#结果
#foo.f2
#base.f1
注意事项
def func(arg):#arg的形态多种多样只要满足可以切片即可
v = arg[-1]
print(v)
鸭子模型
原文:https://www.cnblogs.com/yangzilaing/p/13722951.html