一篇文章帶你了解Python中的類(lèi)
1、類(lèi)的定義
創(chuàng)建一個(gè)rectangle.py文件,并在該文件中定義一個(gè)Rectangle類(lèi)。在該類(lèi)中,__init__表示構(gòu)造方法。其中,self參數(shù)是每一個(gè)類(lèi)定義方法中的第一個(gè)參數(shù)(這里也可以是其它變量名,但是Python常用self這個(gè)變量名)。當(dāng)創(chuàng)建一個(gè)對(duì)象的時(shí)候,每一個(gè)方法中的self參數(shù)都指向并引用這個(gè)對(duì)象,相當(dāng)于一個(gè)指針。在該類(lèi)中,構(gòu)造方法表示該類(lèi)有_width和_height兩個(gè)屬性(也稱(chēng)作實(shí)例變量),并對(duì)它們賦初值1。
__str__方法表示用字符串的方式表示這個(gè)對(duì)象,方便打印并顯示出來(lái),相當(dāng)于Java中的類(lèi)重寫(xiě)toString方法。其中,__init__和__str__是類(lèi)提供的基本方法。
class Rectangle: # 構(gòu)造方法 def __init__(self, width=1, height=1): self._width = width self._height = height # 狀態(tài)表示方法 def __str__(self): return ("Width: " + str(self._width) + "\nHeight: " + str(self._height)) # 賦值方法 def setWidth(self, width): self._width = width def setHeight(self, height): self._height = height # 取值方法 def getWidth(self): return self._width def getHeight(self): return self._height # 其它方法 def area(self): return self._width * self._height
2、創(chuàng)建對(duì)象
新建一個(gè)Test.py文件,調(diào)用rectangle模塊中的Rectangle的類(lèi)。
import rectangle as rec r = rec.Rectangle(4, 5) print(r) print() r = rec.Rectangle() print(r) print() r = rec.Rectangle(3) print(r)
接著輸出結(jié)果:
打印Rectangle類(lèi)的對(duì)象直接調(diào)用了其中的__str__方法。上圖展示了初始化Rectangle對(duì)象時(shí),構(gòu)造方法中參數(shù)的三種不同方式。
創(chuàng)建一個(gè)對(duì)象有以下兩種形式,其偽代碼表示為:
1)objectName = ClassName(arg1,arg2,…)
2)objectName = moduleName.ClassName(arg1,arg2,…)
變量名objectName表示的變量指向該對(duì)象類(lèi)型。
3、繼承
如果往父類(lèi)中增加屬性,子類(lèi)必須先包含刻畫(huà)父類(lèi)屬性的初始化方法,然后增加子類(lèi)的新屬性。偽代碼如下:
super().__ init __ (parentParameter1,…,parentParameterN)
新建一個(gè)square.py文件:
import rectangle as rec class Square(rec.Rectangle): def __init__(self, square, width=1, height=1): super().__init__(width, height) self._square = square def __str__(self): return ("正方形邊長(zhǎng)為:" + str(self._width) + "\n面積為:" + str(self._square)) def isSquare(self): if self._square == self.getWidth() * self.getWidth(): return True else: return False s = Square(1) print(s) print(s.isSquare()) s = Square(2) print(s) print(s.isSquare())
輸出:
以上內(nèi)容參考自機(jī)械工業(yè)出版社《Python程序設(shè)計(jì)》~
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注本站的更多內(nèi)容!
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。