课时36:类与对象:给大家介绍对象
目錄:
一、對(duì)象=屬性+方法
二、課時(shí)36課后習(xí)題及答案
?
大家之前已經(jīng)聽(tīng)說(shuō)過(guò)封裝的概念,把亂七八糟的數(shù)據(jù)扔進(jìn)列表里面,這是一種封裝,是數(shù)據(jù)層面的封裝;把常用的代碼段打包成一個(gè)函數(shù),這也是一種封裝,是語(yǔ)句層面的封裝;本章學(xué)習(xí)的對(duì)象,也是一種封裝的思想,不過(guò)這種思想顯然要更高級(jí)一步:對(duì)象的來(lái)源是模擬真實(shí)世界,把數(shù)據(jù)和代碼都放在了一起。
打個(gè)比方:烏龜就是真是的一個(gè)對(duì)象:(從兩方面來(lái)描述:紅色的為靜態(tài)特征的描述,藍(lán)色的為動(dòng)態(tài)的行為)
?
************************
一、對(duì)象=屬性+方法
************************
?python中的對(duì)象也是如此,一個(gè)對(duì)象的特征稱(chēng)為“屬性”,一個(gè)對(duì)象的行為稱(chēng)為“方法”。
如果把“烏龜”寫(xiě)成代碼,將會(huì)是下邊這樣:
class Turtle: # Python 中的類(lèi)名約定以大寫(xiě)字母開(kāi)頭"""關(guān)于類(lèi)的一個(gè)簡(jiǎn)單例子"""# 屬性color = 'green'weight = 10legs = 4shell = Truemouth = '大嘴'# 方法def climb(self):print("我正在很努力的向前爬......")def run(self):print("我正在飛快的向前跑......")def bite(self):print("咬死你咬死你!!")def eat(self):print("有得吃,真滿(mǎn)足^_^")def sleep(self):print("困了,睡了,晚安,Zzzz?以上代碼定義了對(duì)象的特征(屬性)和行為(方法),但還不是一個(gè)完整的對(duì)象,將定義的這些稱(chēng)為類(lèi)(Class)。需要使用類(lèi)來(lái)創(chuàng)建一個(gè)真正的對(duì)象,這個(gè)對(duì)象就叫作這個(gè)類(lèi)的一個(gè)實(shí)例(Instance)也叫實(shí)例對(duì)象(Instance Objects)
可以這樣理解:這好比工廠的流水線要生產(chǎn)一系列玩具,是不是先做出這個(gè)玩具的模具,然后根據(jù)這個(gè)模具再進(jìn)行批量生產(chǎn),才得到真正的玩具。
再舉個(gè)例子:蓋房子,,是不是得先有個(gè)圖紙,但光有個(gè)圖紙你能不能住進(jìn)去?顯然是不能的。圖紙只告訴了你這個(gè)房子長(zhǎng)什么樣子,但圖紙并不是真正的房子。要根據(jù)圖紙用鋼筋水泥建造出來(lái)的房子才能住人,另外根據(jù)一張圖紙就能蓋出很多房子。創(chuàng)建一個(gè)對(duì)象,也叫類(lèi)的實(shí)例化,其實(shí)很簡(jiǎn)單:
>>> #先運(yùn)行程序 >>> tt = Turtle()注意,類(lèi)名后邊跟著的小括號(hào),這跟調(diào)用函數(shù)是一樣的,所以在Python中,類(lèi)名約定用大寫(xiě)字母開(kāi)頭,函數(shù)用小寫(xiě)字母開(kāi)頭,這樣更容易區(qū)分。另外賦值操作并不是必需的,但如果沒(méi)有把創(chuàng)建好的實(shí)例對(duì)象賦值給一個(gè)變量,那這個(gè)對(duì)象就沒(méi)辦法使用,因?yàn)闆](méi)有任何引用指向這個(gè)實(shí)例,最終會(huì)被Python的垃圾收集機(jī)制自動(dòng)回收。
那如果要調(diào)用對(duì)象里的方法,使用點(diǎn)操作符(.)即可。
>>> tt.climb() 我正在很努力的向前爬...... >>> tt.bite() 咬死你咬死你!! >>> tt.sleep() 困了,睡了,晚安,Zzzz?
*******************************
二、課時(shí)36課后習(xí)題及答案
*******************************
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/DC0307/p/9524230.html
總結(jié)
以上是生活随笔為你收集整理的课时36:类与对象:给大家介绍对象的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: VMware网络连接模式—桥接、NAT以
- 下一篇: OAuth简介(包含简明使用教程)