Python 类的继承

本质上类的相关用法是面向对象语言非常精彩的地方,自己需要阅读别人的代码,因为现在总是写自己的代码,不借鉴别人的代码是很难获得提高的。
本文未成体系,主要面对的是工程上实际需要解决的问题。

1、子类调用父类函数

情况一:子类不重写__init__()方法,实例化子类后,会自动调用父类的__init__()的方法。

情况二:子类重写__init__()方法且不需要调用父类的方法,则子类直接定义自己的__init__()函数,初始化后将不会调用父类的__init__()的方法。

情况三:子类需要重写__init__()方法,且调用父类的方法:

  1. 若此时使用的python语言版本为python3,可使用super关键词。
class Person(object):
    def __init__(self):
        self.name = "Tom"
    def getName(self):
        return self.name

class Student(Person):
    def __init__(self):
        super(Student, self).__init__()
        self.age = 12
    def getAge(self):
        return self.age

if __name__ == "__main__":
    stu = Student()
    print stu.getName()

super函数是在python3中引进的新特性,其最大的优点是如果子类继承了多个父类,它只需要使用一次super函数就可以。

2.针对部分程序过于老旧仍处于python2语言版本,此时有经典的父类名.__init__()方法来进行子类对父类相关函数的调用。

class Person(object):
    def __init__(self):
        self.name = "Tom"
    def getName(self):
        return self.name

class Student(Person):
    def __init__(self):
        Person.__init__(self)
        self.age = 12
    def getAge(self):
        return self.age

if __name__ == "__main__":
    stu = Student()
    print stu.getName()

此方法是一个相当经典的方法,相较于super特性而言较差地点在于子类如果继承较多的类则需要重复的在子类的初始化函数中重复的申明以上继承父类。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值