Object-orientedprogramming(OOP),英文全称:ObjectOrientedProgramming,面向对象编程的主要功能之一就是“继承”。继承是指在不重写原始类的情况下使用现有类的所有功能并扩展这些功能的能力。继承,其实是这样理解的,就是我写了一个父类,一个子类。父亲有钱,儿子没钱,所以儿子决定继承父亲,调用父亲的钱(父亲类的变量和方法)。继承一个类,基本使用以下五个方法。1.直接调用父类属性方法。爸爸有钱,儿子没钱,所以儿子用爸爸的钱类Father():def__init__(self):self.money=1000defaction(self):print('调用父类方法')classSon(Father):passson=Son()#子类Son继承父类Father的所有属性和方法son.action()#调用父类属性output:调用父类方法son.money#调用父类属性output:10002.强行调用父类私有属性方法爸爸说,你儿子老花我的钱,我决定把钱藏起来不让我家用。儿子,试试super()来获取你的私房钱,不过这里需要注意super()强制调用父类的私有属性方法,也就是重写方法。私有变量不能被supper继承,也不能访问父类中的私有属性。属性法的变量是公子拿不到私房钱。classFather():__money=1000#私有变量不能被继承def__action(self):#父类的私有方法money=1000print('调用父类的方法')classSon(Father):defaction(self):super()._Father__action()print(money)son=Son()son.action()Calltheparentclassmethodname'money'isnotdefined3,重写父类属性方法突然儿子有了money,decided不用爸爸的钱,用自己的钱,我决定重写父类的属性方法。classFather():def__init__(self):self.money=0defaction(self):print('调用父类的方法')classSon(Father):def__init__(self):self.money=1000defaction(self):print('子类重写了父类的方法')son=Son()#子类Son继承了父类Father的所有属性和方法son.action()#子类Son调用它的自己的action方法而不是父类的action方法son.money#自己的10004,调用父类的init方法如果爸爸把钱放在__init__中,儿子有没有可能拿到爸爸的钱,它不是私有变量,也不是私有货币,我们当然可以得到它。让我们看看我们是否可以在不使用super的情况下获得它。classFather():def__init__(self):self.money=1000classSon(Father):def__init__(self):passson=Son()print(son.money)#Error:'Son'对象没有attribute'money'不用super就像拿钱一样,太小看我和你爸了。classFather():def__init__(self):self.money=1000classSon(Father):def__init__(self):super().__init__()#也可以使用Father.__init__(self)里面的self必须要加上(上面两个一样)son=Son()print(son.money)10005。继承父类初始化过程中的参数。有时候,爸爸需要挣钱和花钱,这是我们初始化过程中的参数,儿子很好奇,决定看看爸爸口袋里有多少钱。这里我们写了earn_money和spend_moneyclassFather():def__init__(self):self.earn_money=1000self.spend_money=-500classSon(Father):def__init__(self):super().__init__()#你也可以用Father.__init__(self)其中self必须加上defadd(self):returnself.earn_money+self.spend_moneyson=Son()print(son.add())500儿子发现爸爸的钱不够,于是我偷偷拿了一些钱过来。classFather():def__init__(self,a,b):self.earn_money=aself.spend_money=bdefadd(self):returnself.a+self.b#调用父类初始化参数a,b并增加附加参数cclassSon(Father):def__init__(self,a,b,c=1000):#c固定值Father.__init__(self,a,b)self.son_money=cdefadd(self):return自己。earn_money+self.spend_money+self.son_moneyson=Son(1000,-500)#所以c可以表示不显示print(son.add())#调用子类add函数1500以上基本涵盖了Python类的继承,调用父类的属性和方法的基本内容,可以自己写一些案例加深理解。文渊网络仅供学习使用,如有侵权,请联系删除。我的公众号【Python圈】汇集了优质的技术文章和经验总结。学习Python的路上肯定会遇到困难,不要慌张,我这里有一套学习资料,包括40+电子书,600+教学视频,涉及Python基础、爬虫、框架、数据分析、机学习等等,别怕学不会!还有学习交流群,一起学习进步~
