在python里面运用多继承方法详解_第1页
在python里面运用多继承方法详解_第2页
在python里面运用多继承方法详解_第3页
在python里面运用多继承方法详解_第4页
在python里面运用多继承方法详解_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、在pyth里面运用多继承方法详解如何在里面运用多继承thhoy(self):pntotopyoothoopntotooonythn比如说有两个类,如果想要一个子类同时继承这两个类,应该怎么操作呢。pthobbint(yoothooprinttoplayooto00nythinonthothpononon.hobbyon.cook只要在子类名称的后面加入两个父类,就可以进行多继承了。Ind:classFalhei;Lefhobby(self):nrmtCloveioplayvideosane.)classMDihei:defcook(self):(xloveioccokanythin

2、g.)classSon(Father,Mother):passsan=5onsan.hobby(.son.cgk()菲貝雯总子类笔隸的忘页施入两令父类.就珥選窝多璧承了。Lovetoplayvideogame.LovetocookarythiclassFather:defhobby(self):print(lovetoplayvideogame.)defcook(self):print(lovetocookanything.)classMother:defcook(self):print(lovetocookanything.)defhobby(self):print(lovetoplayvi

3、deogame.)classSon(Father,Mother):passson=Son()son.hobby()son.cook()#1In:classFathei:defhobby(self):print(lovedefcook(self):print(laveclassMothei:defcook(self):printClovedefljobby(self):tototoprint(lovetoP-laycookcookPlayvideogane.”)anything.用)anythin.)videoganeJ匚1asjfSon(FatheTjMother):pass呂im=Son(.

4、lson.hobby0sun,cook()輩担爲塑弟于类璽礙的武蟆发观展个父类的方法裁杲一模一样瓠郵就没圧厨时継環爭八的了*Lovbtopl:i3rvideogameLovetocook吐ytkingclassFather:defhobby(self):print(lovetoplayvideogame.)defcook(self):print(lovetocookanything.)classMother:defcook(self):print(lovetocookanything.)defhobby(self):print(lovetoplayvideogame.)classSon(Mot

5、her,Father):passson=Son()son.hobby()son.cook()#18:clairsFatherdefhobby(self):piiiit(Lovdtode*fcook(seLf):piititCLovetoJtother:defcook(seLf):piint(Lovetodefhobby(self):piitit(/Lovetoplayvideogame.ojokanything.okanything)playvidBOgame.)clssSon(HotherjFathez):passson=Son()son.hobby()soncoak()舌醜護我妁超卷置谴喪

6、7-弋世是比获难看出定盘継承了鼠IotctoplayvideogajLClovetocookanythingprint(Son._mro_)#实际上我们可以用mro来查看顺序,首先是子类,然后是母亲,接着是父亲,这是根据书写顺序的,最后就是)bject了。Zn1D:printSon._mo_)该紜上謝冋以弟脸破查看頰侯首先是子类,熬冻杲&亲,綾巻是父亲,辽是眾据尊M顒睜的,歳石就悬购汀兀(class_Son-classJ_aain_.Motherclass_nain_Father,classJobjezt:classAAA(object):passaaa=AAA()dir(aaa)#我们可以查

7、看object类里面有什么方法。In11:classAAA(obje-t):passaaa=AAA()dir(ia)衣圈n可必査看心曲类趣有&么方臥O-j-t11:J_class_delattr_,皿_jJJ已q_,J_fUXlLit_,JJ_ge_,3_getattribiiTeJ,_hashJ_mit_sjbclass_,J-J_-e_,yJ_nodule_,JJ_ne_,nerclassAAA:passaaa=AAA()dir(aaa)#如果没有基类,一般还是要在后面加上object,这里PYTHON3,所以有加和没加没有区别,但还是建议要加上。In12:classAAA:passaaa

8、=dir(aaa.1廿號熒有童弟醱迅是雯总U而麵上血心,这基PTIHO鹹房菽罰撤物谨浮区救程还是建议雯那上Out12:J_class_1_delattr_,J_dic-_J,_doc_.J_eq_1_fornat_J_ge_getattribj-te_,1_hashJjJ-_miT_、_iniT_sutc1ass;吐,_Jiudule_JjPython多继承实例扩展:_;Jneu.rJ.多继承的使用#1.多继承:子类有多个父类classHuman:def_init_(self,sex):self.sex=sexdefp(self):print(这是Human的方法)classPerson:de

9、f_init_(self,name):=namedefp(self):print(这是Person的方法)defperson(self):print(这是我person特有的方法)classTeacher(Person):def_init_(self,name,age):super()._init_(name)self.age=ageclassStudent(Human,Person):def_init_(self,name,sex,grade):#super()._init_(name)#注意:对于多继承来说,使用super只会调用第一个父类的属性方法#super()._i

10、nit_(sex)#要想调用特定父类的构造器只能使用父类名._init_方式。如下:Human._init_(self,sex)Person._init_(self,name)self.grade=gradeclassSon(Human,Teacher):def_init_(self,sex,name,age,fan):Human._init_(self,sex)Teacher._init_(self,name,age)self.fan=fan#创建对象stu=Student(tom,male,88)print(,stu.sex,stu.grade)stu.p()#虽然父类Human和Person都有同名P()方法,但是调用的是括号里的第一个父类Human的方法son1=So

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论