版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
中類的定義與使用演示文稿現(xiàn)在是1頁\一共有29頁\編輯于星期六中類的定義與使用現(xiàn)在是2頁\一共有29頁\編輯于星期六復(fù)習(xí)Python的特點(diǎn)現(xiàn)在是3頁\一共有29頁\編輯于星期六本次主要知識點(diǎn)一
面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)二
定義和使用類三
類的繼承和多態(tài)四
思考題五
總結(jié)現(xiàn)在是4頁\一共有29頁\編輯于星期六一
面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)現(xiàn)在是5頁\一共有29頁\編輯于星期六1.3給大家介紹對象爬跑咬人吃東西睡覺綠色四條腿10kg有外殼大嘴巴現(xiàn)在是6頁\一共有29頁\編輯于星期六對象=屬性+方法現(xiàn)在是7頁\一共有29頁\編輯于星期六1.4面向?qū)ο蟪绦蛟O(shè)計(jì)中的基本概念
(1)對象(Object):面向?qū)ο蟪绦蛟O(shè)計(jì)思想可以將一組數(shù)據(jù)和與這組數(shù)據(jù)有關(guān)操作組裝在一起,形成一個實(shí)體,這個實(shí)體就是對象。(2)類(class):具有相同或相似性質(zhì)的對象的抽象就是類。因此,對象的抽象是類,類的具體化就是對象。例如,如果人類是一個類,則一個具體的人就是一個對象。(3)封裝:將數(shù)據(jù)和操作捆綁在一起,定義一個新類的過程就是封裝。(4)繼承:類之間的關(guān)系,在這種關(guān)系中,一個類共享了一個或多個其他類定義的結(jié)構(gòu)和行為。繼承描述了類之間的關(guān)系。子類可以對基類的行為進(jìn)行擴(kuò)展、覆蓋、重定義。如果人類是一個類,則可以定義一個子類“男人”。“男人”可以繼承人類的屬性(例如姓名、身高、年齡等)和方法(即動作。例如,吃飯和走路),在子類中就無需重復(fù)定義了。從同一個類中繼承得到的子類也具有多態(tài)性,即相同的函數(shù)名在不同子類中有不同的實(shí)現(xiàn)。就如同子女會從父母那里繼承到人類共有的特性,而子女也具有自己的特性。(5)方法:也稱為成員函數(shù),是指對象上的操作,作為類聲明的一部分來定義。方法定義了可以對一個對象可以執(zhí)行的操作。(6)構(gòu)造函數(shù):一種成員函數(shù),來在創(chuàng)建對象時初始化對象。構(gòu)造函數(shù)一般與它所屬的類完全同名?,F(xiàn)在是8頁\一共有29頁\編輯于星期六二
定義和使用類2.1聲明類2.2類方法2.3使用instance()函數(shù)判斷對象類型現(xiàn)在是9頁\一共有29頁\編輯于星期六2.1聲明類在Python中,可以使用class關(guān)鍵字來聲明一個類,其基本語法如下:class類名:
成員變量
成員函數(shù)同樣,Python使用縮進(jìn)標(biāo)識類的定義代碼?,F(xiàn)在是10頁\一共有29頁\編輯于星期六【例2-1】classPerson: defSayHello(self): print("Hello!")現(xiàn)在是11頁\一共有29頁\編輯于星期六2.1.1self可以看到,在成員函數(shù)SayHello()中有一個參數(shù)self。這也是類的成員函數(shù)(方法)與普通函數(shù)的主要區(qū)別。類的成員函數(shù)必須有一個參數(shù)self,而且位于參數(shù)列表的開頭。self就代表類的實(shí)例(對象)自身,可以使用self引用類的屬性和成員函數(shù)。在后面部分還會結(jié)合實(shí)際應(yīng)用介紹self的使用方法?,F(xiàn)在是12頁\一共有29頁\編輯于星期六2.1.2定義類的對象對象是類的實(shí)例。如果人類是一個類的話,那么某個具體的人就是一個對象。只有定義了具體的對象,才能使用類。Python創(chuàng)建對象的方法如下:對象名=類名()例如,下面的代碼定義了一個類Person的對象p:p=Person()現(xiàn)在是13頁\一共有29頁\編輯于星期六【例2-2】classPerson: defSayHello(self): print("Hello!");p=Person()p.SayHello()運(yùn)行結(jié)果如下:Hello!現(xiàn)在是14頁\一共有29頁\編輯于星期六2.1.3成員變量【例2-3】
定義一個字符串類MyString,定義成員變量str,并同時對其賦初始值。classMyString:str="MyString"defoutput(self): print(self.str)s=MyString()s.output()現(xiàn)在是15頁\一共有29頁\編輯于星期六2.1.4Python使用下劃線作為變量前綴和后綴來指定特殊變量,規(guī)則如下:__xxx__表示系統(tǒng)定義名字。__xxx表示類中的私有變量名。類的成員變量可以分為兩種情況,一種是公有變量,一種是私有變量。公有變量可以在類的外部訪問,它是類與用戶之間交流的接口。用戶可以通過公有變量向類中傳遞數(shù)據(jù),也可以通過公有變量獲取類中的數(shù)據(jù)。在類的外部無法訪問私有變量,從而保證類的設(shè)計(jì)思想和內(nèi)部結(jié)構(gòu)并不完全對外公開。在Python中除了__xxx格式的成員變量外,其他的成員變量都是公有變量?,F(xiàn)在是16頁\一共有29頁\編輯于星期六2.1.5構(gòu)造函數(shù)構(gòu)造函數(shù)是類的一個特殊函數(shù),它擁有一個固定的名稱,即__init__(注意,函數(shù)名是以兩個下劃線開頭和兩個下劃線結(jié)束的).當(dāng)創(chuàng)建類的對象實(shí)例時系統(tǒng)會自動調(diào)用構(gòu)造函數(shù),通過構(gòu)造函數(shù)對類進(jìn)行初始化操作?,F(xiàn)在是17頁\一共有29頁\編輯于星期六【例2-4】classMyString: def__init__(self): self.str="MyString" defoutput(self): print(self.str);s=MyString()s.output()現(xiàn)在是18頁\一共有29頁\編輯于星期六【例2-5】classUserInfo: def__init__(self,name,pwd): self.username=name self._pwd=pwd defoutput(self): print("用戶:"+self.username+"\n密碼:"+self._pwd);u=UserInfo("admin","123456")u.output()現(xiàn)在是19頁\一共有29頁\編輯于星期六2.2類方法類方法是Python的一個新概念。類方法具有如下特性:(1)與靜態(tài)方法一樣,類方法可以使用類名調(diào)用類方法。(2)與靜態(tài)方法一樣,類成員方法也無法訪問實(shí)例變量,但可以訪問類的靜態(tài)變量。(3)類方法需傳入代表本類的cls參數(shù)?,F(xiàn)在是20頁\一共有29頁\編輯于星期六使用裝飾符@staticmethod定義類方法class類名: @classmethod def類方法名(cls):
方法體現(xiàn)在是21頁\一共有29頁\編輯于星期六2.3使用instance()函數(shù)判斷對象類型使用instance()函數(shù)可以用來檢測一個給定的對象是否屬于(繼承于)某個類或類型,如果是則返回True;否則返回False。其使用方法如下:isinstance(對象名,類名或類型名)如果對象名屬于指定的類名或類型名,則instance()函數(shù)返回True,否則返回False?,F(xiàn)在是22頁\一共有29頁\編輯于星期六三類的繼承和多態(tài)繼承和多態(tài)是面向?qū)ο蟪绦蛟O(shè)計(jì)思想的重要機(jī)制。類可以繼承其他類的內(nèi)容,包括成員變量和成員函數(shù)。而從同一個類中繼承得到的子類也具有多態(tài)性,即相同的函數(shù)名在不同子類中有不同的實(shí)現(xiàn)。就如同子女會從父母那里繼承到人類共有的特性,而子女也具有自己的特性。在OOP程序設(shè)計(jì)中,當(dāng)我們定義一個class的時候,可以從某個現(xiàn)有的class繼承,新的class稱為子類(Subclass),而被繼承的class稱為基類、父類或超類(Baseclass、Superclass)?,F(xiàn)在是23頁\一共有29頁\編輯于星期六3.1繼承classAnimal(object):defrun(self):print('Animalisrunning...')classDog(Animal):passclassCat(Animal):pass現(xiàn)在是24頁\一共有29頁\編輯于星期六dog=Dog()dog.run()cat=Cat()cat.run()運(yùn)行結(jié)果如下:Animalisrunning...Animalisrunning...現(xiàn)在是25頁\一共有29頁\編輯于星期六繼承有什么好處?最大的好處是子類獲得了父類的全部功能。由于Animial實(shí)現(xiàn)了run()方法,因此,Dog和Cat作為它的子類,什么事也沒干,就自動擁有了run()方法?,F(xiàn)在是26頁\一共有29頁\編輯于星期六3.2多態(tài)當(dāng)我們定義一個class的時候,我們實(shí)際上就定義了一種數(shù)據(jù)類型。我們定義的數(shù)據(jù)類型和Python自帶的數(shù)據(jù)類型,比如str、list、dict沒什么兩樣。舉例如下:a=list()#a是list類型b=Animal()#b是Animal類型c=Dog()#c是Dog類型現(xiàn)在是27頁\一共有29頁\編輯于星期六>>>isinstance(a,
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 年度財(cái)務(wù)目標(biāo)達(dá)成計(jì)劃
- 廣告行業(yè)前臺工作總結(jié)
- IT行業(yè)安全管理工作總結(jié)
- 礦產(chǎn)資源行業(yè)會計(jì)的關(guān)鍵職責(zé)
- 醫(yī)學(xué)美容護(hù)士工作心得
- 2024年認(rèn)識小熊教案
- 2024年牧場之國教案
- 2024年計(jì)算機(jī)教室管理制度
- 分銷合同范本(2篇)
- 辦公室合同范本(2篇)
- 特種涂料類型——耐核輻射涂料的研究
- 二氧化碳可降解塑料生產(chǎn)項(xiàng)目建議書
- 化工裝置常用英語詞匯對照
- 幼兒園幼兒教育數(shù)學(xué)領(lǐng)域核心經(jīng)驗(yàn)
- 病例討論麻醉科PPT課件
- EBZ220A掘進(jìn)機(jī)幻燈片
- 集體跳繩賽規(guī)則
- 煤礦調(diào)度工作培訓(xùn)內(nèi)容
- 機(jī)械原理課程設(shè)計(jì)-旋轉(zhuǎn)型灌裝機(jī)運(yùn)動方案設(shè)計(jì)
- 標(biāo)準(zhǔn)《大跨徑混凝土橋梁的試驗(yàn)方法》
- 1、食品安全與營養(yǎng)健康自查制度(學(xué)校食堂)
評論
0/150
提交評論