免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
山腰復(fù)習(xí)群知識(shí)點(diǎn)

復(fù)習(xí)課主要以知識(shí)點(diǎn)梳理+一個(gè)代碼的練習(xí)+問(wèn)題答疑

#

通過(guò)這個(gè)復(fù)習(xí)課,幫助大家鞏固類(lèi)與對(duì)象這個(gè)知識(shí)點(diǎn)

#

有疑問(wèn)的同學(xué),在講解中間,助教會(huì)留出時(shí)間來(lái)給大家提問(wèn),希望大家遵守一下提問(wèn)秩序哈~

#

12關(guān)、13關(guān)我們學(xué)習(xí)的面向?qū)ο缶幊?,是山腰學(xué)習(xí)中最重要的知識(shí)內(nèi)容

#

學(xué)習(xí)這兩關(guān)的目標(biāo)是

#

1)了解何為對(duì)象

2)區(qū)分變量與類(lèi)屬性,函數(shù)與類(lèi)方法

3)掌握類(lèi)的實(shí)例化及初始化函數(shù)

4)熟練繼承與子類(lèi)定制

#

涉及到的難點(diǎn)有:

類(lèi)的實(shí)例化,初始化函數(shù)的改寫(xiě),繼承的用法

#

首先我們要知道,什么是面向?qū)ο缶幊?/p>

#

面向?qū)ο缶幊叹褪且詫?duì)象為中心,將一組對(duì)象組成程序。使用于較復(fù)雜,尤其需要持續(xù)更新的代碼場(chǎng)景。

#

那么類(lèi)是什么?

#

類(lèi),是一個(gè)函數(shù)包。類(lèi)中可以放置函數(shù)和變量,然后類(lèi)中的函數(shù)可以很方便的使用類(lèi)中的變量,(也就是類(lèi)方法可以調(diào)用類(lèi)屬性)

#

類(lèi)中的 函數(shù) 叫 ‘方法’,類(lèi)中的 變量 叫 ‘屬性’(就不要再說(shuō)函數(shù)和變量了,要說(shuō)類(lèi)方法和類(lèi)屬性)

#

#

那么,方法和屬性我們知道了,那什么是參數(shù)呢?

#

參數(shù)是,我們?cè)诙x函數(shù)的時(shí)候,需要傳遞給類(lèi)方法的東西

#

我們舉個(gè)例子

#

#

在這里的代碼中,我們?cè)诙x函數(shù)的時(shí)候,留了一個(gè)需要手動(dòng)傳遞參數(shù)的位置

#

所以在調(diào)用類(lèi)方法的時(shí)候,需要手動(dòng)設(shè)置一個(gè)參數(shù)

#

如果沒(méi)有設(shè)置參數(shù),或者參數(shù)設(shè)置多了,都會(huì)報(bào)錯(cuò)

#

但有一種情況可以不手動(dòng)設(shè)置參數(shù)

#

那就是在定義方法的時(shí)候,將需要的參數(shù)設(shè)置為默認(rèn)參數(shù)

#

#

這里有沒(méi)有疑問(wèn)的同學(xué)呢?

#

我們繼續(xù)

#

在同一個(gè)類(lèi)里面,不同方法之間,還可以實(shí)現(xiàn)方法的調(diào)用

#

舉個(gè)栗子

#

#

在方法 live()中,就調(diào)用了方法 born()

#

順著這個(gè)例子,我們接著講到,類(lèi)的實(shí)例化是什么?實(shí)例怎么使用?

#

類(lèi)是對(duì)象的模板,可以復(fù)制出多個(gè)對(duì)象,這個(gè)過(guò)程叫實(shí)例化

#

格式 : 實(shí)例名=類(lèi)名() 

#

#

這里要注意,類(lèi)實(shí)例化的時(shí)候,類(lèi)的括號(hào)不能丟

#

被創(chuàng)造出來(lái)的實(shí)例與類(lèi)一模一樣,但是它是獨(dú)立的對(duì)象

#

調(diào)用類(lèi)屬性和類(lèi)方法的格式分別為:

調(diào)用類(lèi)的屬性:實(shí)例名.屬性;

調(diào)用類(lèi)的方法:實(shí)例名.方法()

#

這里給大家展示一下例子

#

#

這個(gè)例子屬于,在類(lèi)外部調(diào)用類(lèi)的屬性

#

我們用print語(yǔ)句將my_computer這個(gè)實(shí)例的screen這個(gè)屬性打印出來(lái)

#

屬性可以在外部調(diào)用,也可以在類(lèi)的內(nèi)部調(diào)用

#

當(dāng)在類(lèi)的方法內(nèi)部想調(diào)用類(lèi)屬性或其他方法時(shí),就要采用self.屬性名或self.方法名的格式。(相當(dāng)于改變了作用域)

#

#

有同學(xué)問(wèn),為什么實(shí)例調(diào)用方法時(shí)不用傳參,定義時(shí)不是有個(gè)參數(shù)self嗎?

#

這就是參數(shù)self的特殊之處:在定義時(shí)不能丟,在調(diào)用時(shí)要忽略

#

self的作用是,self會(huì)接收實(shí)例化過(guò)程中傳入的數(shù)據(jù),當(dāng)實(shí)例對(duì)象創(chuàng)建后,實(shí)例便會(huì)代替 self,在代碼中運(yùn)行

#

通俗一點(diǎn)理解,只要記住,加上self.前綴的類(lèi)屬性和類(lèi)方法,準(zhǔn)確來(lái)說(shuō)叫實(shí)例屬性和,可以在類(lèi)下的不同類(lèi)方法中實(shí)現(xiàn)調(diào)用

#

那么,實(shí)例的對(duì)象,和類(lèi)之間有什么聯(lián)系呢

#

首先,實(shí)例屬性和類(lèi)屬性:

1)修改類(lèi)屬性,這會(huì)導(dǎo)致所有實(shí)例屬性變化(因?yàn)轭?lèi)是模板);

2)修改實(shí)例屬性,但這不會(huì)影響到其他實(shí)例,也不會(huì)影響到類(lèi)。因?yàn)槊總€(gè)實(shí)例都是獨(dú)立的個(gè)體。

#

其次,實(shí)例方法和類(lèi)方法:

1)重寫(xiě)類(lèi)方法,這會(huì)導(dǎo)致所有實(shí)例方法自動(dòng)被重寫(xiě);

2)實(shí)例方法不可重寫(xiě)

#

#

到這一步為止,有沒(méi)有疑問(wèn)呢

#

繼續(xù)

#

初始化函數(shù)

#

初始化函數(shù)(方法),也叫構(gòu)造函數(shù),它的意思是,當(dāng)你創(chuàng)建一個(gè)實(shí)例的時(shí)候,這個(gè)函數(shù)就會(huì)被調(diào)用。

#

初始化函數(shù)的寫(xiě)法是固定的格式:中間是“init”,這個(gè)單詞的中文意思是“初始化”,然后前后都要有【兩個(gè)下劃線】,然后__init__()的括號(hào)中,第一個(gè)參數(shù)一定要寫(xiě)上self,不然會(huì)報(bào)錯(cuò)

#

也就是寫(xiě)成def __init__(self):

#

#

我們一般會(huì)用初始化函數(shù)來(lái)做什么呢?

#

在初始化方法內(nèi)部完成類(lèi)屬性的創(chuàng)建,為類(lèi)屬性設(shè)置初始值,這樣類(lèi)中的其他方法就能直接、隨時(shí)調(diào)用。不需要再調(diào)用__init__()

#

舉個(gè)栗子

#

#

在這個(gè)類(lèi)中,一旦調(diào)用,就會(huì)執(zhí)行初始化函數(shù)創(chuàng)建類(lèi)屬性

#

在初始化函數(shù)的定義時(shí),也可以設(shè)置需要傳遞的參數(shù)位置

#

在實(shí)例化類(lèi)的時(shí)候,可直接手動(dòng)傳入?yún)?shù)

#

#

繼續(xù)講最后一個(gè)知識(shí),類(lèi)的繼承

#

類(lèi)的繼承很大程度也是為了避免重復(fù)性勞動(dòng)。比如說(shuō)當(dāng)我們要寫(xiě)一個(gè)新的類(lèi),如果新的類(lèi)有許多代碼都和舊類(lèi)相同,又有一部分不同的時(shí)候,就可以用“繼承”的方式避免重復(fù)寫(xiě)代碼;

#

同理,在類(lèi)的繼承后,子類(lèi)重寫(xiě)初始化函數(shù)時(shí)調(diào)用父類(lèi)的初始化函數(shù),也是因?yàn)樵S多代碼都和舊類(lèi)相同,又有一部分不同的時(shí)候,就可以用調(diào)用的方式避免重復(fù)寫(xiě)代碼;

#

子類(lèi)創(chuàng)建的實(shí)例,同時(shí)屬于父類(lèi)

父類(lèi)創(chuàng)建的實(shí)例,不屬于子類(lèi);

#

#

這個(gè)例子屬于類(lèi)的定制和調(diào)用,能夠理解這個(gè)代碼,其實(shí)對(duì)于類(lèi)的繼承最核心的知識(shí)就掌握了

#

子類(lèi)會(huì)自動(dòng)擁有父類(lèi)的屬性和方法,子類(lèi)不需要顯示寫(xiě)出來(lái),顯示寫(xiě)的方法叫重寫(xiě)方法,即名字與父類(lèi)的方法名相同,函數(shù)參數(shù)也相同則父類(lèi)的方法被重寫(xiě)

#

#

就是很多人常問(wèn)的課程上的題目,這里為什么要加book.__init__

#

這里就是重寫(xiě)了方法,如果你已經(jīng)繼承父類(lèi)的方法,但是子類(lèi)又重新寫(xiě)了初始化函數(shù),那么就屬于重寫(xiě),要重寫(xiě)就要在下一行加入父類(lèi).__init__(self,xx)這樣的格式

#

在Python中,子類(lèi)如果定義了構(gòu)造函數(shù),而沒(méi)有調(diào)用父類(lèi)的,那么Python不會(huì)自動(dòng)調(diào)用,也就是說(shuō)父類(lèi)的構(gòu)造函數(shù)不會(huì)執(zhí)行

#

如果子類(lèi)沒(méi)有定義自己的初始化函數(shù),父類(lèi)的初始化函數(shù)會(huì)被默認(rèn)調(diào)用;但是如果要實(shí)例化子類(lèi)的對(duì)象,則只能傳入父類(lèi)的初始化函數(shù)對(duì)應(yīng)的參數(shù),否則會(huì)出錯(cuò)。

#

Python支持多繼承,如果多個(gè)繼承類(lèi)都重寫(xiě)了相應(yīng)屬性和方法,則按就近原則繼承屬性和行為,這里的就近就是C1。如下圖所示:

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
類(lèi)的定義與應(yīng)用
第13關(guān)課后習(xí)題講解
零基礎(chǔ)如何自學(xué)python?只要你寫(xiě)項(xiàng)目就繞不開(kāi)這兩個(gè)知識(shí)點(diǎn)
:【類(lèi)的定制】和【類(lèi)的繼承】。
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服