python語法基礎(chǔ)通過初始化方法參數(shù)可以傳入貓的哆啦夢Hell_第1頁
python語法基礎(chǔ)通過初始化方法參數(shù)可以傳入貓的哆啦夢Hell_第2頁
python語法基礎(chǔ)通過初始化方法參數(shù)可以傳入貓的哆啦夢Hell_第3頁
python語法基礎(chǔ)通過初始化方法參數(shù)可以傳入貓的哆啦夢Hell_第4頁
python語法基礎(chǔ)通過初始化方法參數(shù)可以傳入貓的哆啦夢Hell_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

python面向?qū)?化為0重寫方法str,輸出貓的定義并創(chuàng)建貓的對象傳入然后每調(diào)用一次yearPass方法就打印一下貓的信息每過幾年,給貓?zhí)砑语椢铩?歲添加衣服,5歲添加腳墊,8歲添加鈴鐺,10歲剃胡子。貓。1貓。3貓,8貓,10歲。衣服、腳墊、鈴鐺、剃胡子。abc定義類,de對對象進行編程。classclass始definit(self,name):=name#self.age=0 self.outlook物#過了一defyearPass(self):self.age+=1#加1ifself.age==3:self.outlook.append('衣服elifelifself.age==5:elifself.age==8:elifself.age==10:defstrdesc'%s,%d(,self.age)iflen(self.outlook)==0:desc'無飾物'desc+='%s'%','.join(self.outlook)returndesccat1Cat('加菲貓')foriinrange(10):私Pythonclass始defclass始definit(self,name):=nameself.age=0defyearPass(self):self.age+=defstrreturn'name:%s,age:%d'%(,self.dog1=Dog(dog1=Dog(' ='snoopy'dog1.age=88dog2=Dog('snoopy')print(dog2.age)使用者嘗試修改狗的和dog2=Dog('snoopy')print(dog2.age)dog2=Dog('snoopy')#print(dog2.dog2=Dog('snoopy')#print(dog2.age)class始defclass始definit(self,name):=nameself.age=0defself.setAge(self.getAge()+ def returnself. defsetAge(self, self.age=dog3dog3Dog(#dog3.setAge(13)defstrreturn'name:%s,age:%d'%(,self.dog3Dog('薩摩'dog3Dog('薩摩')dog3.setAge(13)繼class子類class子類(父類classdefeat(self):print('Animaleat')classDog(Animal):dog1=classdefeat(self):print('Animaleat')classDog(Animal):defprint('Dogdog1=Dog()classDog(Animal):defsuper().eat()#調(diào)用父類的方print('Dogdog2=子類還可以繼續(xù)派生它的子類(孫類#子類的子classHabaDog(Dog):defeat(self):super().eat()#調(diào)用父類的方print('HabaDogHabaDogdog2=HabaDog()classdefeat(self):print('Animaleat'classdefeat(self):print('Animaleat')classclassAnimal(object):defeat(self):print('Animal后面一種寫法(object)稱為新式類。推薦使用。class始class始definit(self,name):=namedefstrreturn'name:%s'%defdel(self):print('Animalclass始definit(self,name,age):Animal.init(self,name)self.age=agedefdel(self):print('Dogdel')Animal.deldog1=',如果父類中有私有的屬性或方法,子類中也是不能classclassdefinit(self,name):=name=defstrreturn'name:%s,age:%d'%(,self.age)defgetAge(self):returnself.agedefdel(self):print('Animaldog1=print(self.getAge())#報錯。子類不 父類的私有方defdel(self):print('Dogdel')Animal.del(self)classdefinit(self,name):Animal.init(self,name)defprint(self.age)self.面向?qū)ο笾蓄惻c類之間的關(guān)classclassAnimal(object):classDog(Animal):classclassdefinit(self):self.leg=classLeg(object):classclassdefinit(self):self.leg=咬defbid(self,print(+classdefinit(self):self.leg=養(yǎng)deffeed(self,print(+UML1狗咬1人養(yǎng)1**面向?qū)ο笏?大原則,23妖抓人人蛇喜喜白青如圖,抓妖,因為蛇妖是妖的子類,所以一定會抓蛇妖反過來,喜歡白蛇,白蛇是蛇妖的子類,但是不一定喜歡蛇妖classclassdefdefinit(self,name):=namedefgetName(self):classdefinit(self,name):super().init(name)classdefinit(self,name):super().init(name)classdefinit(self,name):super().init(name)classdefinit(self,name):=namedefcatch(self,print(classdefinit(self,name):=namedeflove(self,print(fash1=FaShi(' qing1=QingShe(' bai1=BaiShe(' man1=Man(' 多繼class子類class子類(12classclassBase1(object):defprint('--test1--classBase2(object):defprint('--test2--#子類Sub同時繼承Base1classSub(Base1,Base2):sub=Sub()鉆石繼classAnimal(object):defclassAnimal(object):definit(self):print('AnimalclassHorse(Animal):definit(self):Animal.init(self)print('Horseinit')classdefinit(self):Animal.init(self)print('Lvinit')classLuo(Horse,Lv):definit(self):Horse.init(self)Lv.init(self)print('Luoinit')luo=會發(fā)現(xiàn)鉆石繼承中,Animalinit被調(diào)用了兩次。classAnimal(object):definitclassAnimal(object):definit(self):print('AnimalclassHorse(Animal):definit(self):#Animal.init(self)super(Horse,self).init()print('Horseinit')classclassdefinit#Animal.initprint('Lvinit')classLuo(Horse,Lv):definit#Horse.init(self)#Lv.init(self)print('Luoinit')luo=Luo()super(Luo,self).initsuper(Lv,self).initsuper().init()classclassAnimal(object):defeat(self):print('AnimalclassHorse(Animal):defeat(self):print('HorseclassLv(Animal):defprint('LvclassLuo(Horse,Lv):luo=Luo()MRO:MethodResolutionMROLuo對象調(diào)用一個方法,查找該方法的順序的類分別是:Luo、Horse、Lvclassclassdefinit(self):print('selfis',self)classdefinitprint('fromBselfis',self)classdefinitprint('fromCselfis',self)classD(A,B,definit(self):print('Dsuper(D,self).init()super(A,self).init()super(B,self).init()super(C,self).initX=super(D,self).super(D,self).init表示要查找init()

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論