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

下載本文檔

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

文檔簡介

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

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

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

?法怎樣傳遞呢

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

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

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

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

(self?法,理解看如下示例classdefinit(self,name):=defdefmyPrint(animal):dog1Animal('??')dog2Animal('北北')運?結(jié)果總所謂的self,可以理解為?可以把sf當做C+中類??的ts指針?樣理解,就是對象?身的意思某個對象調(diào)?其?法時,yt解釋器會把這個對象作為第?個參數(shù)傳遞給s為了更好的理解?向?qū)ο缶幊?,?以“烤地?”為案例,進?分示例屬性如下cookedLevel:這是數(shù)字;0~3表示還是?的,超過3表示半?不熟,超過cookedString:這是字符串;描述地?的?熟程condiments:這是地?的配料列表,?如番茄醬、芥末醬示例?法如下:把地?烤?段:設(shè)置默認的屬:讓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塊代碼合并為?個程序后,在代碼的下?添加以下代碼進?測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=- 。這會使地??以前還?,當然了這也cookedLevel=-義,通過使??法來進?修改,就可以在?法中進?數(shù)據(jù)的檢隱藏數(shù) classHome: init(self,self.areaarea房間剩余的可??積self.light='on'#燈默認是亮的self.containsItem=[] strmsg當前房間可??積為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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論