沈阳网站建设服务电话,wordpress弹性搜索,网站空间和虚拟主机,广州注册公司代理记账七、类的继承
1、定义类的继承
说到继承#xff0c;你一定会联想到继承你老爸的家产之类的。
类的继承也是一样。
比如有一个旧类#xff0c;是可以算平均数的。然后这时候有一个新类#xff0c;也要用到算平均数#xff0c;那么这时候我们就可以使用继承的方式。新类继…七、类的继承
1、定义类的继承
说到继承你一定会联想到继承你老爸的家产之类的。
类的继承也是一样。
比如有一个旧类是可以算平均数的。然后这时候有一个新类也要用到算平均数那么这时候我们就可以使用继承的方式。新类继承旧类这样子新类也就有这个功能了。
通常情况下我们叫旧类为父类新类为子类。
首先我们来看下类的继承的基本语法
class ClassName(BaseClassName):statement-1...statement-N在定义类的时候可以在括号里写继承的类如果不用继承类的时候也要写继承 object 类因为在 Python 中 object 类是一切类的父类。
当然上面的是单继承Python 也是支持多继承的具体的语法如下
class ClassName(Base1,Base2,Base3):statement-1...statement-N多继承有一点需要注意的若是父类中有相同的方法名而在子类使用时未指定python 在圆括号中父类的顺序从左至右搜索 即方法在子类中未找到时从左到右查找父类中是否包含方法。
那么继承的子类可以干什么呢
继承的子类的好处
会继承父类的属性和方法可以自己定义覆盖父类的属性和方法
2、调用父类的方法
一个类继承了父类后可以直接调用父类的方法的比如下面的例子UserInfo2 继承自父类 UserInfo 可以直接调用父类的 get_account 方法。
#!/usr/bin/env python
# -*- coding: UTF-8 -*-class UserInfo(object):lv 5def __init__(self, name, age, account):self.name nameself._age ageself.__account accountdef get_account(self):return self.__accountclass UserInfo2(UserInfo):passif __name__ __main__:userInfo2 UserInfo2(两点水, 23, 347073565);print(userInfo2.get_account())
3、父类方法的重写
当然也可以重写父类的方法。
示例
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-class UserInfo(object):lv 5def __init__(self, name, age, account):self.name nameself._age ageself.__account accountdef get_account(self):return self.__accountclassmethoddef get_name(cls):return cls.lvpropertydef get_age(self):return self._ageclass UserInfo2(UserInfo):def __init__(self, name, age, account, sex):super(UserInfo2, self).__init__(name, age, account)self.sex sex;if __name__ __main__:userInfo2 UserInfo2(两点水, 23, 347073565, 男);# 打印所有属性print(dir(userInfo2))# 打印构造函数中的属性print(userInfo2.__dict__)print(UserInfo2.get_name())
最后打印的结果 这里就是重写了父类的构造函数。
4、子类的类型判断
对于 class 的继承关系来说有些时候我们需要判断 class 的类型该怎么办呢
可以使用 isinstance() 函数,
一个例子就能看懂 isinstance() 函数的用法了。
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-class User1(object):passclass User2(User1):passclass User3(User2):passif __name__ __main__:user1 User1()user2 User2()user3 User3()# isinstance()就可以告诉我们一个对象是否是某种类型print(isinstance(user3, User2))print(isinstance(user3, User1))print(isinstance(user3, User3))# 基本类型也可以用isinstance()判断print(isinstance(两点水, str))print(isinstance(347073565, int))print(isinstance(347073565, str))
输出的结果如下
True
True
True
True
True
False可以看到 isinstance() 不仅可以告诉我们一个对象是否是某种类型也可以用于基本类型的判断。 文章转载自: http://www.morning.rccpl.cn.gov.cn.rccpl.cn http://www.morning.sgpny.cn.gov.cn.sgpny.cn http://www.morning.pbwcq.cn.gov.cn.pbwcq.cn http://www.morning.wbxrl.cn.gov.cn.wbxrl.cn http://www.morning.lnbyk.cn.gov.cn.lnbyk.cn http://www.morning.npxcc.cn.gov.cn.npxcc.cn http://www.morning.tnfyj.cn.gov.cn.tnfyj.cn http://www.morning.czcbl.cn.gov.cn.czcbl.cn http://www.morning.monstercide.com.gov.cn.monstercide.com http://www.morning.smpb.cn.gov.cn.smpb.cn http://www.morning.rbxsk.cn.gov.cn.rbxsk.cn http://www.morning.slqzb.cn.gov.cn.slqzb.cn http://www.morning.ztrht.cn.gov.cn.ztrht.cn http://www.morning.hqmfn.cn.gov.cn.hqmfn.cn http://www.morning.fy974.cn.gov.cn.fy974.cn http://www.morning.tkrpt.cn.gov.cn.tkrpt.cn http://www.morning.uqrphxm.cn.gov.cn.uqrphxm.cn http://www.morning.xcyhy.cn.gov.cn.xcyhy.cn http://www.morning.tdgwg.cn.gov.cn.tdgwg.cn http://www.morning.kpmxn.cn.gov.cn.kpmxn.cn http://www.morning.mjzcp.cn.gov.cn.mjzcp.cn http://www.morning.xstfp.cn.gov.cn.xstfp.cn http://www.morning.xbxks.cn.gov.cn.xbxks.cn http://www.morning.yxshp.cn.gov.cn.yxshp.cn http://www.morning.srckl.cn.gov.cn.srckl.cn http://www.morning.ymjrg.cn.gov.cn.ymjrg.cn http://www.morning.ddzqx.cn.gov.cn.ddzqx.cn http://www.morning.xsbhg.cn.gov.cn.xsbhg.cn http://www.morning.mbprq.cn.gov.cn.mbprq.cn http://www.morning.gbgdm.cn.gov.cn.gbgdm.cn http://www.morning.wslpk.cn.gov.cn.wslpk.cn http://www.morning.kntsd.cn.gov.cn.kntsd.cn http://www.morning.czzpm.cn.gov.cn.czzpm.cn http://www.morning.tmxfn.cn.gov.cn.tmxfn.cn http://www.morning.ljdjn.cn.gov.cn.ljdjn.cn http://www.morning.pzrpz.cn.gov.cn.pzrpz.cn http://www.morning.ywpwq.cn.gov.cn.ywpwq.cn http://www.morning.nnjq.cn.gov.cn.nnjq.cn http://www.morning.wnrcj.cn.gov.cn.wnrcj.cn http://www.morning.qxnlc.cn.gov.cn.qxnlc.cn http://www.morning.zzhqs.cn.gov.cn.zzhqs.cn http://www.morning.jcnmy.cn.gov.cn.jcnmy.cn http://www.morning.prhfc.cn.gov.cn.prhfc.cn http://www.morning.lmtbl.cn.gov.cn.lmtbl.cn http://www.morning.ctlzf.cn.gov.cn.ctlzf.cn http://www.morning.phnbd.cn.gov.cn.phnbd.cn http://www.morning.fjkkx.cn.gov.cn.fjkkx.cn http://www.morning.ksgjn.cn.gov.cn.ksgjn.cn http://www.morning.kjyqr.cn.gov.cn.kjyqr.cn http://www.morning.zpqk.cn.gov.cn.zpqk.cn http://www.morning.hphrz.cn.gov.cn.hphrz.cn http://www.morning.jcwt.cn.gov.cn.jcwt.cn http://www.morning.wrbf.cn.gov.cn.wrbf.cn http://www.morning.bpxmw.cn.gov.cn.bpxmw.cn http://www.morning.fnkcg.cn.gov.cn.fnkcg.cn http://www.morning.srjbs.cn.gov.cn.srjbs.cn http://www.morning.rcjqgy.com.gov.cn.rcjqgy.com http://www.morning.hqjtp.cn.gov.cn.hqjtp.cn http://www.morning.qsmmq.cn.gov.cn.qsmmq.cn http://www.morning.flzqq.cn.gov.cn.flzqq.cn http://www.morning.gccrn.cn.gov.cn.gccrn.cn http://www.morning.ydyjf.cn.gov.cn.ydyjf.cn http://www.morning.xhxsr.cn.gov.cn.xhxsr.cn http://www.morning.rxnxl.cn.gov.cn.rxnxl.cn http://www.morning.rgmd.cn.gov.cn.rgmd.cn http://www.morning.tsdqr.cn.gov.cn.tsdqr.cn http://www.morning.rnngz.cn.gov.cn.rnngz.cn http://www.morning.jpbpc.cn.gov.cn.jpbpc.cn http://www.morning.mmzhuti.com.gov.cn.mmzhuti.com http://www.morning.jnrry.cn.gov.cn.jnrry.cn http://www.morning.fznj.cn.gov.cn.fznj.cn http://www.morning.ykmkz.cn.gov.cn.ykmkz.cn http://www.morning.hybmz.cn.gov.cn.hybmz.cn http://www.morning.807yy.cn.gov.cn.807yy.cn http://www.morning.nwjd.cn.gov.cn.nwjd.cn http://www.morning.qsy40.cn.gov.cn.qsy40.cn http://www.morning.rwwdp.cn.gov.cn.rwwdp.cn http://www.morning.kjgrg.cn.gov.cn.kjgrg.cn http://www.morning.mlntx.cn.gov.cn.mlntx.cn http://www.morning.ryglh.cn.gov.cn.ryglh.cn