zoukankan      html  css  js  c++  java
  • Python编程系列教程第14讲——继承

    分享知识,分享快乐,收获友谊,收获财富!

    大家好,我是数字雨,QQ:798033502

    http://itbook.taobao.com/

    今天给大家带来的教程是《Python编程系列教程第14讲——继承》

    我这个教程最开始是以《Python3程序开发指南》为教材进行录制的,因此就有很多朋友过来问我还有没有这本书。让大家失望的是现在很多地方都缺货。不过还好有电子版的,今天我会打包到教程中。

    另外:中秋佳节来临之际,Python编程系列教程1-15讲全部免费看。我将把这1-15课重新上传一次,最新的下载地址课后会在我的新浪博客http://blog.sina.com.cn/xi4oyu公布。想跟我博客做友情链接的朋友,只要在我的博客留言,我基本上来着不拒。

    好了,下面我们言归正传,一起学习下本节课的内容。说到继承这个概念,其实大家并不陌生。在我们现实生活中就有很多继承的例子,比如子承父业。再比如哺乳动物,他们的主要特征有:体表有毛、头、颈、躯干、四肢和尾五个部分;用肺呼吸;体温恒定;大脑较发达;哺乳;胎生。我们人类属于哺乳动物,因此我们人类就继承了哺乳动物的这些特征,同时我们人类也有自己的特征。那么在我们Python中,一个新类可以通过继承来获得已有类的方法和属性。被继承的类我们称之为父类。继承类我们称之为子类。通过继承而来的类也可以自己定义新的方法和属性。

    python在类名后用一对圆括号表示继承关系, 括号中的类表示父类,如果父类定义了__init__方法,则子类必须显示地调用父类的__init__方法,如果子类需要扩展父类的行为,可以添加__init__方法的参数。我们来看下面这个例子:

    classAnimal:

        __blood='2500ML' #私有属性

        def __init__(self,height,weight):

            self.height=height

            self.weight=weight

        def speek(self):

            print("speek")

        def run(self):

            print("run")

        def __fly(self): #私有方法

            print("fly")

     

    classPeople(Animal):

        def __init__(self,height,weight,name): #添加name属性

            Animal.__init__(self,height,weight) #显示调用父类的__init__方法

            self.name=name

            print("I Am{0}".format(self.name))

     

     

    if__name__=='__main__':

        p=People('170','50','jack')

        #父类的私有成员不能被子类调用

        #print(p.__blood)  #(错误的写法)

    #p.__fly()        #(错误的写法)

     

    继承的好处之一就是提供代码的重用性,在Python中是支持多重继承的。多重继承是指创建的类拥有几个类的属性和方法。即一个子类可以有多个父类。在类名后面的圆括号中包含多个父类名,父类名以逗号隔开。比如我们创建一个Man这个类,即继承自Animal类也继承自People,代码如下:

    classMain(People,Animal):

        def__init(self,height,weight,name):

            Animal.__init__(self,height,weight)

           People.__init__(self,height,weight,name)

            print("我是男人")

    注意:多继承中如果同时继承父类和父类的父类(爷爷类),那么要把父类写在爷爷类前面,否则会报错。

  • 相关阅读:
    蓝桥杯 奇怪的比赛
    历届试题 古堡算式
    PAT 甲级 1040 Longest Symmetric String (25 分)(字符串最长对称字串,遍历)
    PAT 甲级 1039 Course List for Student (25 分)(字符串哈希,优先队列,没想到是哈希)*...
    PAT 甲级 1038 Recover the Smallest Number (30 分)(思维题,贪心)
    PAT 甲级 1037 Magic Coupon (25 分) (较简单,贪心)
    那不是Bug,是新需求
    看看C# 6.0中那些语法糖都干了些什么(上篇)
    eclipse工具的使用心得
    送给那些刚进公司工作滴童鞋
  • 原文地址:https://www.cnblogs.com/secbook/p/3309341.html
Copyright © 2011-2022 走看看