Python类的继承

1、类的继承

语法:

class SubClassName (ParentClass1[, ParentClass2, ...]):
   'Optional class documentation string'
   class_suite

在Python中继承中的一些特点:

1:在继承中基类的构造(__init__()方法)不会被自动调用,它需要在其派生类的构造中亲自专门调用。

2:在调用基类的方法时,需要加上基类的类名前缀,且需要带上self参数变量。区别于在类中调用普通函数时并不需要带上self参数。

3:Python总是首先查找对应类型的方法,如果它不能在派生类中找到对应的方法,它才开始到基类中逐个查找。

如果在继承元组中列了一个以上的类,那么它就被称作“多重继承”。

例如:

Parent类:

class Parent:  # 定义父类

    parentAttr = 100

    def __init__(self):
        print("调用父类构造函数")

    def parentMethod(self):
        print("调用父类方法parentMethod")

    def setAttr(self, attr):
        Parent.parentAttr = attr

    def getAttr(self):
        print("父类属性 : ", Parent.parentAttr)

Child类:

from Parent import *

class Child(Parent):  # 定义子类

    def __init__(self):
        print("调用子类构造方法")

    def childMethod(self):
        print("调用子类方法childMethod")

ChildTest类:

from Child import *

c = Child()          # 实例化子类
c.childMethod()      # 调用子类的方法
c.parentMethod()     # 调用父类方法
c.setAttr(200)       # 再次调用父类的方法
c.getAttr()          # 再次调用父类的方法

输出结果:

调用子类构造方法
调用子类方法childMethod
调用父类方法parentMethod
父类属性 :  200

你可以使用issubclass()或者isinstance()方法来检测。issubclass(sub, sup)布尔函数判断一个类是另一个类的子类或者子孙类。isinstance(obj, Class)布尔函数如果obj是Class类的实例对象或者是一个Class子类的实例对象则返回true。

2、方法重写和运算符重载

如果你的父类方法的功能不能满足你的需求,你可以在子类重写你父类的方法。Python同样支持运算符重载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值