黑馬程序員2017python零基礎(chǔ)教程附帶教學(xué)課件開發(fā)工具環(huán)境配置-類與對象_第1頁
黑馬程序員2017python零基礎(chǔ)教程附帶教學(xué)課件開發(fā)工具環(huán)境配置-類與對象_第2頁
黑馬程序員2017python零基礎(chǔ)教程附帶教學(xué)課件開發(fā)工具環(huán)境配置-類與對象_第3頁
黑馬程序員2017python零基礎(chǔ)教程附帶教學(xué)課件開發(fā)工具環(huán)境配置-類與對象_第4頁
黑馬程序員2017python零基礎(chǔ)教程附帶教學(xué)課件開發(fā)工具環(huán)境配置-類與對象_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

TableofPython基 ?向?qū)ο??向?qū)ο缶幊探轭惡蛯Χx創(chuàng)建對 ?應(yīng)?:創(chuàng)建多個對"魔法"?應(yīng)?:烤地隱藏數(shù)應(yīng)?:存放家1Python基 ?向?qū)ο?請?程序描述如下事情A同學(xué)登記信B同學(xué)登記信C同學(xué)登記信C同學(xué)做?我介stu_astu_a=}stu_b=}stu_c= }defforkey,valueinprintkey,"=",stu_astu_aStudent(個?信息)stu_bStudent(個?信息)stu_cStudent(個?信息?向過程:根據(jù)業(yè)務(wù)邏輯從上到下寫發(fā)程序,減少了重復(fù)代碼的重寫過程分開考慮。defdef發(fā)送郵件(內(nèi)容whileifcpu利?率>if硬盤使?空間>if內(nèi)存占?>今天我們來學(xué)習(xí)?種新的編程?式:?向?qū)ο缶幊蹋∣bjectOriented解決菜?買電腦的故第?種?式在?上查找資根據(jù)??預(yù)算和需求定電腦的型號MacBook15去市場找到蘋果店各種店?法甄別真假隨便找了?找到業(yè)務(wù)員,業(yè)務(wù)員推薦了另外?款配置更?價格便宜,也是蘋果系統(tǒng)的1W砍價30分鐘付款成第?種?式:找?個靠譜的電腦?給錢交買電腦的第?種?式:這種解決問題的思路我們就叫做?向買電腦的第?種?式:強調(diào)的是電腦??,電腦??是處理這件事的?就可以解決問題這種解決問題的思路就是?向?qū)??向?qū)ο蟮乃季S解決問題的重點1)當(dāng)遇到?個需求的時候不??去實現(xiàn),如果???步步實現(xiàn)那就是?向過程2)應(yīng)該找?個專?做這個事的?來做3)?向?qū)ο笫腔?向過程的解決吃啤酒鴨的問鴨??殺作烹吃卒給錢吃胖6需要了解的定義性?字?向?qū)ο?object-oriented簡稱OO?今還沒有統(tǒng)?的概念我這?把它定義為:按?們認(rèn)識客觀世界的系統(tǒng)思維?式,采?基于對象(實體)的概念建?模型,模擬客觀世界分析、設(shè)計、實現(xiàn)軟件的辦法。?向?qū)ο缶幊?ObjectOrientedProgramming-OOP)是?種解決軟件?的設(shè)計和編程?法。作應(yīng)?數(shù)據(jù)、狀態(tài),以類的型式描述出來以對象實例的形式在軟件系統(tǒng)中復(fù)??向?qū)ο缶幊痰?個?常重要的概念:類和對對象是?向?qū)ο缶幊痰暮?,在使?對象的過程中,為了將具有共同特征?為的?組對象抽象定義,提出了另外?個新的概念——類就相當(dāng)于制造?機時的圖紙,?它來進(jìn)?創(chuàng)建的?機就相當(dāng)于類?以類聚物以群分。?以類聚物以群分。類是抽象的的存在。?個類可以找到多個對象某?個具體事物的存在某?個具體事物的存在,在現(xiàn)實世界中可以是看得?摸得著的。?總結(jié):類就是創(chuàng)建對象的模奔馳汽?類奔馳汽?類狗類??狗類家那只??狗對象?果類蘋果類紅蘋果類 ?蘋果類我嘴?吃了?半的蘋果對象類的屬性:?組數(shù)類的?法:允許對進(jìn)?操作的?法(?為<1屬性:身?(height)、?法(?為/功能):跑(run)、打架狗類的設(shè)類名:狗屬性:品種、??、、名字、腿?的數(shù)?法(?為/功能):叫、跑、咬?、吃、搖尾如何把?常?活中的事物抽象成程序中的類擁有相同(或者類似)屬性和?為的對象都可以抽像出?個?法:?般名詞都是類(名詞提煉法<1>發(fā)射3顆彈轟掉了2架??機-》可以抽象成<2> --》?熱狗--》?物類狗--說??榴箱說向?類名屬性類名屬性顏?發(fā)型,??為:發(fā),搖頭類名屬性:?量類名屬性:顏?、?量、類型、速?為:跳定義?個類,格式如下classclass類名demo:定義?個Car##定義類classdefprint('?輪?個數(shù):%d顏?%s'%(self.wheelNum,def定義類時有2種:新式類和經(jīng)典類,上?的Car為經(jīng)典類,如果Car(object)則為新式類名名規(guī)則按照"?駝峰定義 Ca應(yīng)該把圖紙交給?成??們?nèi)?成了yt創(chuàng)建對象的格式為:對象名對象名=類名創(chuàng)建對象##定義類classdefdef創(chuàng)建?個對象,并?變量BMWBMW=BMW.color='??'BMW.wheelNum4#輪?數(shù)量BMW=Car(),這樣就產(chǎn)?了?個Car的實例對象,此時也可以通過實例對象BMW來屬性或者?法第?次使?BMW.color='??'表示給BMW這個對象添加屬性,如果?再次出現(xiàn)BMW.color=xxx表示對屬性進(jìn)?修改initinit想?想在上??節(jié)的mBW這個對象添加了個屬性,Nm()以及c(?的顏?),試想如果再次創(chuàng)答initinitdefdef類名definit():initinit

classdefinit(self):self.wheelNum=4self.color'藍(lán)?'def#創(chuàng)建對象BMWCar()總結(jié)當(dāng)創(chuàng)建Car對象后,在沒有調(diào)

()?法的前提下,BMW就認(rèn)擁有了2個屬性wheelNum和color,原因?qū)ο蠛?,?刻被默認(rèn)調(diào)?

?法怎樣傳遞呢

init?法已經(jīng)被默認(rèn)的執(zhí)?了,那么能否()?法的時候傳遞?些參數(shù)呢?如果可以,classdefinit(self,newWheelNum,newColor):self.wheelNum=newWheelNumself.color=newColordefBMW=Car(4,總結(jié)

()?法,在創(chuàng)建?個對象時默認(rèn)被調(diào)?,不需要?動調(diào)(self)中,默認(rèn)有1個參數(shù)名字為self,如果在創(chuàng)建對象時傳initinitinitinit

中出了self作為第?個形參外還需要中的s參數(shù),不需要開發(fā)者傳遞,yto解釋器會?動把當(dāng)前的對象引?傳遞進(jìn)去根據(jù)上兩節(jié)創(chuàng)建?個Car創(chuàng)建出多個汽?對象,?如BMW、AUDI應(yīng)?:創(chuàng)建多個對 "魔法"?打印如果把BMW使?print進(jìn)?輸出的話,會看到如下的信即看到的是創(chuàng)建出來的BMW對象在內(nèi)存中的地str定strBMWBMWCar(4"??defdefstrmsg"嘿。。。我的顏?是self.color"我有int(self.whereturnmsgdefinit(self,newWheelNum,self.wheelNum=newWheelNumself.color=newColorclass

()的,那么就有特殊的功能,因此當(dāng)使?么就會打印從在這個?法中t

(self?法,理解看如下示例classdefinit(self,name):=defdefmyPrint(animal):dog1Animal('??')dog2Animal('北北')運?結(jié)果總所謂的self,可以理解為?可以把sf當(dāng)做C+中類??的ts指針?樣理解,就是對象?身的意思某個對象調(diào)?其?法時,yt解釋器會把這個對象作為第?個參數(shù)傳遞給s為了更好的理解?向?qū)ο缶幊?,?以“烤地?”為案例,進(jìn)?分示例屬性如下cookedLevel:這是數(shù)字;0~3表示還是?的,超過3表示半?不熟,超過cookedString:這是字符串;描述地?的?熟程condiments:這是地?的配料列表,?如番茄醬、芥末醬示例?法如下:把地?烤?段:設(shè)置默認(rèn)的屬:讓print的結(jié)果看起來更好 ?classSweetPotato:definitself.cookedLevel=0self.cookedString"?的"self.condiments=[]defcook(self,time):self.cookedLevel+=timeifself.cookedLevel>self.cookedString"烤成灰了"elifself.cookedLevel>5:self.cookedString"烤好了"elifself.cookedLevel>3:self.cookedString"半?不熟"self.cookedString"?的把上?2塊代碼合并為?個程序后,在代碼的下?添加以下代碼進(jìn)?測mySweetPotato=SweetPotato()mySweetPotato=SweetPotato()完整的代碼為classSweetPotatoclassSweetPotato:definit(self):self.cookedLevel=0self.cookedString"?的"self.condiments=[]defcook(self,time):self.cookedLevel+=timeifself.cookedLevel>self.cookedString"烤成灰了"elifself.cookedLevel>5:self.cookedString"烤好了"elifself.cookedLevel>3:self.cookedString"半?不熟"self.cookedString"?的mySweetPotato=SweetPotato()在上?的代碼最后?添加如下代碼 mySweetPotato.cook(4)#烤4分鐘defstrmsgdefstrmsgself.cookedString地?"iflen(self.condiments)>0:msg=msg+fortempinself.condiments:msg=msg+temp+","msg=msg.strip(",msg=msg+")"returnmsgdefaddCondiments(self,condiments):

str完整的代碼如下classSweetPotato: init(self):self.cookedLevel=0self.cookedString?的"self.condiments=[] str(self):msgself.cookedString地?"iflen(self.condiments)>0:msg=msg+fortempinself.condiments:msg=msg+temp+","msg=msg.strip(",msg=msg+")"returnmsgdefcook(self,time):self.cookedLevel+=timeifself.cookedLevel>self.cookedString烤成灰了"elifself.cookedLevel>5:self.cookedString烤好了"elifself.cookedLevel>3:self.cookedString半?不熟"self.cookedString?的"defaddCondiments(self,condiments):mySweetPotato= 可能你已經(jīng),查看過著修改對象的屬性(數(shù)據(jù)),有2種?直接通過對象名修SweetPotato.cookedLevel=SweetPotato.cookedLevel=可以使?第1種?法直接修改,為什么還要定義?法來間接修改呢?少有2個原因如果直接修改屬性,烤地??少需要修改2部分,即修改cookedLevel如果直接屬性,可能會出現(xiàn)?些數(shù)據(jù)設(shè)置錯誤的情況產(chǎn)?例cookedLevel=- 。這會使地??以前還?,當(dāng)然了這也cookedLevel=-義,通過使??法來進(jìn)?修改,就可以在?法中進(jìn)?數(shù)據(jù)的檢隱藏數(shù) classHome: init(self,self.areaarea房間剩余的可??積self.light='on'#燈默認(rèn)是亮的self.containsItem=[] strmsg當(dāng)前房間可??積為str(self.area)iflen(self.containsItem)>0:msg=msg+"容納的物品有:"fortempinself.containsItem:msg=msg+temp.getName()+","msg=msg.strip(",")returndefmodateItem(self,item):needAreaitem.getUsedArea()ifself.area

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論