python中calss(類)的使用,類的教程,類中的函數(shù)怎么調(diào)用。

      網(wǎng)友投稿 1109 2025-03-31

      我們先來看看這個(gè)代碼

      class?Computer: ????screen?=?True ????def?start(self): ????????print('電腦正在開機(jī)中……')my_computer?=?Computer()#實(shí)例化類print(my_computer.screen)#打印類中的屬性值my_computer.start()#啟動(dòng)類中的方法12345678910

      想要調(diào)用他語法是實(shí)例名.屬性和實(shí)例名.方法

      所以說最后我們打印出的內(nèi)容是

      True電腦正在開機(jī)中……12

      來看看怎么才能使用類中的值:

      my_computer.screen

      實(shí)例名.屬性

      這樣就可以調(diào)用類中的屬性了

      my_computer.start()

      實(shí)例名.方法

      這樣就可以啟動(dòng)類中的函數(shù)

      看到這里很多人也明白怎么使用類了,可是發(fā)現(xiàn)類中函數(shù)有一個(gè)self參數(shù)這個(gè)參數(shù)有什么作用呢?

      接下來我們看

      class?Chinese: ????name?=?'小張'??#?類屬性name ????def?say(self,?someone):??#?帶有兩個(gè)參數(shù)的方法 ????????print(someone?+?'是中國(guó)人')person?=?Chinese()print(person.name)person.say('小張')?12345678910

      輸出的結(jié)果是:

      小張 小張是中國(guó)人12

      self調(diào)用時(shí)要忽略,'小張’傳給參數(shù)someone

      為什么忽略self,因?yàn)閟elf會(huì)接收實(shí)例化過程中傳入的數(shù)據(jù),當(dāng)實(shí)例對(duì)象創(chuàng)建后,實(shí)例便會(huì)代替 self,self 是所有實(shí)例的替身,“替身”是什么意思呢?就如上面這個(gè)代碼一樣,傳參直接給了someone沒有給self,因?yàn)樗缓雎粤?,但是他是存在的,因?yàn)闆]有他,函數(shù)就不是實(shí)例化中的函數(shù),所以大家只要記得在類中函數(shù)添加上self就行了。

      self總結(jié),self就是實(shí)例化類的意思,傳參時(shí)可以忽略。

      我們接著走,細(xì)心的同學(xué)會(huì)發(fā)現(xiàn),我們傳的參數(shù)小張給someone,然后再打印出 小張是中國(guó)人,其實(shí)我們沒必要這么麻煩,直接看類的屬性中有小張的參數(shù)值,直接調(diào)用就好了

      然后你們就會(huì)想到

      class?Chinese: ????name?=?'小張'??#?類屬性name ????def?say(self):??#?帶有兩個(gè)參數(shù)的方法 ????????print(name?+?'是中國(guó)人')person?=?Chinese()print(person.name)person.say()?12345678910

      打印出來的結(jié)果

      Traceback?(most?recent?call?last): ??File?"one.py",?line?10,?in? ????person.say() ??File?"one.py",?line?6,?in?say????print(name?+?'是中國(guó)人')NameError:?name?'name'?is?not?defined123456

      報(bào)錯(cuò)找到不到name,為什么呢?我上面不是寫了嘛?因?yàn)轭惱锩嬲{(diào)用屬性需要先加實(shí)例化,那是不是寫Chinese().name是的,這樣寫沒有錯(cuò),但是我們沒必要這樣寫呢,我們上面說過self就是類的實(shí)例化,所以我們寫成self.name?就可以調(diào)用屬性了,

      小總結(jié):類的屬性調(diào)用前面加self.屬性名就可以了。self在類中就是Chinese(),我們完全可以把全部的self寫成Chinese(),有的人類的名字很長(zhǎng),寫代碼時(shí)很不有好所以出現(xiàn)了self,帶代替的他的存在,傳參時(shí)也不會(huì)傳給他。

      有同學(xué)又問,如果類里面有兩個(gè)方法(函數(shù))這么辦?我下一個(gè)方法(函數(shù))要調(diào)用上一個(gè)方法(函數(shù))這么調(diào)用,同理看下面的代碼

      class?Chinese: ????def?greeting(self): ????????print('很高興遇見你') ????def?say(self): ????????self.greeting()? ????????print('我來自中國(guó)')person?=?Chinese()#?創(chuàng)建實(shí)例personperson.say()#?調(diào)用say()方法?12345678910111213

      我們只要在前面加上一個(gè)self(實(shí)例)就可以了。大家可以復(fù)制代碼到編譯器看看。

      綜上,所以我們說self代表的是類的實(shí)例本身,方便數(shù)據(jù)的流轉(zhuǎn)。對(duì)此,我們需要記住兩點(diǎn):

      第一點(diǎn):只要在類中用def創(chuàng)建方法時(shí),就必須把第一個(gè)參數(shù)位置留給 self,并在調(diào)用方法時(shí)忽略它(不用給self傳參)。

      第二點(diǎn):當(dāng)在類的方法內(nèi)部想調(diào)用類屬性或其他方法時(shí),就要采用self.屬性名或self.方法名的格式。

      接下來我們說說類中的初始化

      定義初始化方法的格式是def?init(self),是由init加左右兩邊的【雙】下劃線組成( initialize “初始化”的縮寫)。

      初始化方法的作用在于:實(shí)例對(duì)象創(chuàng)建時(shí),該方法內(nèi)的代碼無須調(diào)用就會(huì)自動(dòng)運(yùn)行。

      我們看下面的代碼

      class?Chinese: ????def?__init__(self):? ????????print('很高興遇見你,我是初始化方法')person?=?Chinese()123456

      python中calss(類)的使用,類的教程,類中的函數(shù)怎么調(diào)用。

      運(yùn)行出來的結(jié)果

      很高興遇見你,我是初始化方法1

      少了一個(gè)調(diào)用的函數(shù) person.__ init __()

      為什么呢?因?yàn)樗麜r(shí)初始化,只要類的實(shí)例化創(chuàng)建出來就會(huì)自動(dòng)運(yùn)行,好比方說,你打開電腦,他會(huì)自動(dòng)加載C盤上的系統(tǒng)文件,直到你打開電腦桌面為止,剩下的才是你操作的內(nèi)容,前面打開電腦的過程都叫做類的初始化,自動(dòng)運(yùn)行了。

      這時(shí)候有同學(xué)問,那我再初始化寫一些代碼賦值給函數(shù),能調(diào)用嗎?

      在初始化中所有代碼都是可以調(diào)用的,同理,在前面加一個(gè)self看下面的例子

      class?Chinese: ????def?__init__?(self): ????????self.mouth?=?1??#?self.不能丟 ????????self.eye?=?2 ???? ????def?body(self): ????????print('我有%s張嘴巴'?%?self.mouth) ????????print('我有%s只眼睛'?%?self.eye)person?=?Chinese()person.body()1234567891011

      運(yùn)行出來的結(jié)果就是

      我有1張嘴巴 我有2只眼睛

      Python

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:幫你認(rèn)識(shí)Excel2010中改進(jìn)的函數(shù)
      下一篇:從擴(kuò)線查詢能力分析分布式圖數(shù)據(jù)庫(kù)Titan的設(shè)計(jì)改進(jìn)點(diǎn)
      相關(guān)文章
      337P日本欧洲亚洲大胆精品| 亚洲高清毛片一区二区| 亚洲国产一区明星换脸| 色偷偷尼玛图亚洲综合| 亚洲第一综合天堂另类专| 亚洲综合激情五月色一区| 在线观看亚洲AV每日更新无码| 国产精品亚洲专区在线观看| 97se亚洲国产综合自在线| 四虎亚洲精品高清在线观看| 性xxxx黑人与亚洲| 亚洲中文字幕无码久久2020| 亚洲一卡一卡二新区无人区| 亚洲欧美成人一区二区三区| 亚洲欧美日本韩国| 妇女自拍偷自拍亚洲精品| 亚洲av午夜成人片精品电影| 亚洲精品无码久久毛片| 在线精品亚洲一区二区三区| 亚洲熟妇av一区二区三区漫画| 亚洲色中文字幕无码AV| 亚洲成人在线电影| 亚洲精品在线视频观看| 亚洲伊人久久大香线蕉| 亚洲精品人成网在线播放影院 | 亚洲一区二区三区国产精华液| 亚洲日韩亚洲另类激情文学| 亚洲AV女人18毛片水真多| 亚洲Aⅴ在线无码播放毛片一线天| 国产亚洲精品国产福利在线观看| 亚洲国产精品成人一区| 亚洲人成网77777亚洲色 | 久久亚洲高清观看| 婷婷亚洲久悠悠色悠在线播放| 亚洲第一成年人网站| 亚洲乱码在线卡一卡二卡新区 | 亚洲乱亚洲乱淫久久| 亚洲av片不卡无码久久| 亚洲人成未满十八禁网站| 亚洲av无码国产精品色在线看不卡 | 久久亚洲精品国产精品|