我們在使用類的時候經(jīng)常要自己定義方法,這一節(jié)我們就來介紹一下如何自定義方法,關(guān)于類中定義的方法,我們可以繼續(xù)以教室為例,當(dāng)我們定義了一間教室,這間教室里可以學(xué)習(xí)語文、數(shù)學(xué)和英語,那么當(dāng)一個學(xué)生到了這個班級里之后,也就具備了在這個教室學(xué)習(xí)語文數(shù)學(xué)和英語的能力,有課外興趣的也可以根據(jù)自己的選擇去其他學(xué)科的知識,通過這個例子我們來進(jìn)行這一節(jié)的學(xué)習(xí)。
首先我們需要定義一個類:
class Study: def __init__(self): print('在這個班級必須學(xué)習(xí)語文') print('在這個班級必須學(xué)習(xí)數(shù)學(xué)') print('在這個班級必須學(xué)習(xí)英語') lihua = Study()#使用Study這個類,然后就可以使用其中的方法
輸出結(jié)果為:
在這個班級必須學(xué)習(xí)語文 在這個班級必須學(xué)習(xí)數(shù)學(xué) 在這個班級必須學(xué)習(xí)英語
這是我們關(guān)于類的最簡使用方式:通過創(chuàng)建一個類,然后在類中創(chuàng)建了幾個方法,通過調(diào)用類之后直接使用類中的方法。
如果想要添加一個學(xué)習(xí)其他學(xué)科的功能,我們需要在類中先添加一個方法:
def study_others(self,others): print('在這個班級可以學(xué)習(xí)%s'%others)
然后使用的時候注意參數(shù)的傳遞。
lihua.study_others('歷史')
輸出結(jié)果為:
在這個班級可以學(xué)習(xí)歷史中
下面我們通過例子來進(jìn)一步了解構(gòu)造方法和自定義方法的結(jié)合。
我們在圖書館借閱書籍的時候一般是通過個人信息來存儲我們的借還記錄。
看下面的例子:
class Library: def __init__(self,name,id,age): self.name = name self.id = id self.age =age def borrow(self,bookname): self.bookname = bookname print('%s借閱了書籍--%s'%(self.name,self.bookname)) print('借閱者學(xué)號為%d,年齡為%s'%(self.id,self.age)) print('借書成功!') xiaoming = Library('小明',1001,20) xiaoming.borrow('Python教程')
輸出結(jié)果為:
小明借閱了書籍--Python教程 借閱者學(xué)號為1001,年齡為20 借書成功!
從上面的例子中我們來分析一下,我們首先在init方法中定義了3個參數(shù),分別為姓名、學(xué)號和年齡,因此我們在使用這個類方法的時候,傳遞了三個實際參數(shù),然后xiaoming就已經(jīng)調(diào)用了這個類。因為init方法是初始構(gòu)造方法,因此在borrow方法中可以直接使用init中的數(shù)據(jù),當(dāng)xiaoming使用借書方法的時候,調(diào)用了構(gòu)造方法中的信息完成借書操作。
我們再通過一個例子來加深一下對該方法的理解。
書店里有一百本Python學(xué)習(xí)教程,如果有人買了一本那么該書就少了一本,書店老板會時不時的訂購這本書,一次訂購十本。
代碼如下:
class BookStore: def __init__(self,bookname,bookcount): self.bookname = bookname self.bookcount = bookcount def sell(self): self.bookcount -= 1 print('%s現(xiàn)在有%s本'%(self.bookname,self.bookcount)) def buy(self): self.bookcount += 10 print('%s現(xiàn)在有%s本' % (self.bookname, self.bookcount)) own = BookStore('Python學(xué)習(xí)教程',100) own.sell() own.sell() own.buy() own.sell()
輸出結(jié)構(gòu)為:
Python學(xué)習(xí)教程現(xiàn)在有99本 Python學(xué)習(xí)教程現(xiàn)在有98本 Python學(xué)習(xí)教程現(xiàn)在有108本 Python學(xué)習(xí)教程現(xiàn)在有107本
在上面的例子中,構(gòu)造方法中定義了書的名字和書的數(shù)量,然后在下面定義了賣書和買書的方法,然后我們使用own調(diào)用了BookStore類,然后再通過類中的方法實現(xiàn)賣書和買書的操作。
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點擊了解:
一點編程也不會寫的:零基礎(chǔ)C語言學(xué)練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進(jìn)階課程
從零到寫出一個爬蟲的Python編程課程
只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程
信息學(xué)奧賽或C++選手的 必學(xué)C++課程
藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程
手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程