您好,登錄后才能下訂單哦!
這篇文章主要介紹了Python面向?qū)ο笏枷肱c應(yīng)用的示例分析,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
面向?qū)ο笏枷?/strong>
1、面向?qū)ο蟮脑O(shè)計(jì)思想
面向?qū)ο笫腔谌f物皆對(duì)象這個(gè)哲學(xué)觀點(diǎn)。
2、面向?qū)ο蠛兔嫦蜻^程的區(qū)別
面向過程
在生活中:
它是一種看待問題的思維方式,在思考問題的時(shí)候,著眼問題是怎樣一步一步解決的,然后親力親為去解決問題[類似于公司里的執(zhí)行者]。
在程序中:
代碼是從上而下順序執(zhí)行,各個(gè)模塊之間的關(guān)系盡可能簡(jiǎn)單,在功能上相對(duì)獨(dú)立,程序的流程在寫程序的時(shí)候就已經(jīng)決定。
面向?qū)ο?/p>
在生活中:
它是另一種看待問題的方式,它著眼于找到一個(gè)具有特殊功能的個(gè)體,然后委托這個(gè)個(gè)體去幫你完成某件事.這更符合人類思考習(xí)慣的思想[指揮者]。
在程序中:
把數(shù)據(jù)以及對(duì)數(shù)據(jù)的操作方法放在一起,作為一個(gè)相互依存的整體–對(duì)象;
把同類的對(duì)象進(jìn)行抽象出其共性,形成類;
類中大多數(shù)數(shù)據(jù),只能用本類的方法進(jìn)行處理;
類通過一個(gè)簡(jiǎn)單的外部接口與外界發(fā)生關(guān)系,對(duì)象與對(duì)象之間通過消息進(jìn)行通信;
程序執(zhí)行的流程由用戶在使用的過程中決定;
使用面向?qū)ο笏枷脒M(jìn)行開發(fā),需要先找到具有所需功能的對(duì)象來使用,如果這個(gè)對(duì)象不存在,那么則需要?jiǎng)?chuàng)建這么一個(gè)具有所需功能的對(duì)象。
注意:面向?qū)ο笾皇且环N思想,并不是一門編程語言。
區(qū)別總結(jié)
a. 都是看待問題的一種思維方式,都能解決問題;
b. 面向過程著眼于所有的事情親力親為;
c. 面向?qū)ο笾塾谡业揭粋€(gè)具有特殊功能的對(duì)象,委托這個(gè)對(duì)象實(shí)現(xiàn)你需要實(shí)現(xiàn)的功能。python語言是面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,類和對(duì)象是面向?qū)ο蟮暮诵摹?/p>
類和對(duì)象
1、類和對(duì)象的概念
類:一個(gè)具有特殊功能的實(shí)體的集合[群體]。
對(duì)象:在一個(gè)類中,一個(gè)具有特殊功能的實(shí)體,能夠幫忙解決特定的問題,對(duì)象通常也被稱為實(shí)例。
兩者之間的關(guān)系:類用于描述某一對(duì)象的共同特征,而對(duì)象則是類的具體存在。
舉例:
學(xué)生 張三、李四
快遞 順豐、韻達(dá)總結(jié):
類與對(duì)象的關(guān)系:
a.類是對(duì)象的抽象,對(duì)象是類的具體體現(xiàn)。
b.類也是一種數(shù)據(jù)類型,只不過是自己定義的,類似與number,string等,它本身并不占用空間,但是它的實(shí)例[對(duì)象]是占用空間的。
2、類的定義
格式:
class 類名(object): 類體
說明:
a.python中使用class關(guān)鍵字定義類;
b.類名只要是一個(gè)合法的標(biāo)識(shí)符即可,命名規(guī)則遵循”大駝峰式命名”【每個(gè)單詞的首字母大寫】;
c.盡量使用單個(gè)或者多個(gè)有意義的單詞連接而成
演示
# 一個(gè)簡(jiǎn)單的類的實(shí)例 class Person(): print("hello")
3、類的設(shè)計(jì)
只需要關(guān)心3樣?xùn)|西
1.事物名稱[類名]: 如人類 (Person);
2.特征(屬性): 如身高(height) 年齡(age)等 ——>名詞;
3.行為(方法): 如跑(run) 說話(say) —————>動(dòng)詞。
類中的方法和屬性
1、方法和屬性的定義
生活中描述事物的無非就是描述事物的特征和行為。
python中用類來描述事物也是如此,前面已經(jīng)定義了類,但是,如果只有類單獨(dú)存在,沒有任何意義,所以定義類其實(shí)就是定義類中的成員[成員變量和成員方法]。
在類中的變量我們稱之為成員變量,在類中的方法我們稱之為成員方法(函數(shù))。
成員變量—>類具有的特征 例如:人—>身高,性別,體重。
成員方法 —>類具有的行為 例如人—>吃喝玩樂。
因此,擁有相同的(或者類似)屬性和行為的對(duì)象都可以抽取出一個(gè)類。
class Persion(): #成員變量,初始值就是相當(dāng)于默認(rèn)值 name = "" age = 0 height = 0 weight = 0 #成員方法 #在類的內(nèi)部,使用def關(guān)鍵字來定義的一個(gè)方法 #注意:區(qū)別于普通方法,類中方法的參數(shù)必須包含參數(shù)self,且為第一個(gè)參數(shù) #self代表類的實(shí)例(某個(gè)對(duì)象) def run(self): print("run") def eat(self, food): print("eat",food) def sleep(self): print("sleeping")
說明:定義了類,并在類中定義了成員變量和成員方法,但是成員變量和成員方法是如何使用的呢?
2、方法和屬性的使用
2.1、實(shí)例化對(duì)象:
前面說過,對(duì)象是實(shí)實(shí)在在的個(gè)體,負(fù)責(zé)去完成某件指定的事情。
對(duì)象的創(chuàng)建的過程又被稱作對(duì)象的實(shí)例化過程。
語法:
對(duì)象名 = 類名()
''' 實(shí)例化對(duì)象 格式: 對(duì)象名 = 類名() 注意: 沒有參數(shù)的時(shí)候,小括號(hào)也不能省略 ''' #實(shí)例化一個(gè)對(duì)象 pre1 = Person() print(pre1) print(type(per1)) print(id(per1)) per2 = Person() print(per2) print(type(per2)) print(id(per2))
3、對(duì)象調(diào)用方法和屬性
per = Preson() ''' 訪問屬性 格式:對(duì)象名.屬性名 賦值:對(duì)象名.屬性名 = 新值 ''' per.name = 'lili' per.age = 18 per.height = 160 per.weight = 80 print(per.name, per.age, per.height, per.weight) ''' 訪問方法 格式:對(duì)象名.方法名(參數(shù)列表) ''' per.run() per.eat("apple") per.sleep() #問題:目前來看Person創(chuàng)建的所有對(duì)象屬性都是一樣的 per2 = Person() print(per2.age) per3 = Person() print(per3.age)
總結(jié):
訪問變量采用: 對(duì)象名.屬性名;
訪問方法采用: 對(duì)象名.方法名(參數(shù)列表)。
4、內(nèi)存中的對(duì)象
per = Person()
說明:程序中定義Person類型的變量per實(shí)際是一個(gè)變量名,它被存放在棧內(nèi)存中,它指向?qū)嶋H的Person對(duì)象,而真正的Person對(duì)象則存放在堆內(nèi)存中。
綜合練習(xí):
第一天開學(xué),介紹一下你自己其中包括姓名,年齡以及愛好
#學(xué)生類 class Student(): #特征:成員變量 self.name = "" self.age = "" self.hobby ="" def introduce(self,name, age, hobby): print("大家好,我是%s,今年%d歲,愛好是%s"%(name,age, hobby)) def singsong(self): print("娘子~啊哈") def dance(self): print("廣場(chǎng)舞跳起來...") def lie(self): print("我家特別窮,我小時(shí)候就一直在放牛,只有幾萬頭....") # 類實(shí)例化 stu = Student() # 成員方法調(diào)用 stu.introduce('ldc',18,'跑步') stu.singsong() stu.dance() stu.lie()
輸出:
大家好,我是ldc,今年18歲,愛好是跑步
娘子~啊哈
廣場(chǎng)舞跳起來...
我家特別窮,我小時(shí)候就一直在放牛,只有幾萬頭....
如何查看所有屬性和方法
class Test(): def __init__(self,name): self.name = name def test(self): print('testing...') test = Test('測(cè)試') # 查看所有屬性和方法 list1 = dir(test) # 檢查實(shí)例是否有這個(gè)屬性 print(hasattr(test, 'name'),hasattr(test, 'test'),hasattr(test, 'tt')) # 設(shè)置屬性值 setattr(test,'name','測(cè)試2') # 獲取屬性值 print(getattr(test, 'name'))
輸出:
True True False
測(cè)試2
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Python面向?qū)ο笏枷肱c應(yīng)用的示例分析”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。