Python 類與物件

2021-09-29 08:00:14 字數 4904 閱讀 1883

物件導向程式設計三要素:封裝、繼承、多型。

類與物件
萬事萬物都可以用類描述。

class

cat:

#大駝峰命名

#初始化物件 #方便快速定義新物件屬性的功能

def__init__(self,new_name,new_age)

: self.name = new_name

self.age = new_age

def__str__(self)

:#方便print輸出物件屬性的功能

return

'%s的年齡是:%d'

%(self.name,self.age)

#功能區

defeat

(self)

:print

('貓在吃魚'

)def

drink

(self)

:print

('貓在喝水'

)def

introduce

(self)

:print

('%s的年齡是:%d'

%(self.name,self.age)

)#self 確保了多個物件的重複使用性

#建立乙個物件

tom = cat(

)#呼叫物件功能

tom.eat(

)tom.drink(

)#給tom指向的類新增 2個屬性(不常用)

tom.name =

'湯姆'

tom.age =

40#呼叫新功能

tom.introduce(

)>>

>湯姆的年齡是:40

lanmao = cat(

'藍貓',10

)#__init__對號入組新增屬性

print

(lanmao)

#__str__功能方便報告屬性

>>

>藍貓的年齡是:10

綜合運用——烤地瓜
class

sweetpotato

:def

__init__

(self)

: self.cookedstring =

'生的'

self.cookedlevel =

0#相當於全域性變數的屬性

self.condiments =

#列表屬性可以儲存資料

def__str__

(self)

:#方便print輸出

return

'地瓜 狀態:%s(%d),新增的佐料有%s'

%(self.cookedstring,self.cookedlevel,self.condiments)

defcook

(self,cooked_time)

:

self.cookedlevel += cooked_time #累計cook時間

if self.cookedlevel >=

0and self.cookedlevel<3:

self.cookedstring =

'生的'

elif self.cookedlevel >=

5and self.cookedlevel<5:

self.cookedstring =

'半生不熟'

elif self.cookedlevel >=

5and self.cookedlevel<8:

self.cookedstring =

'熟惹'

elif self.cookedlevel >8:

self.cookedstring =

'烤糊了'

defaddcondiments

(self,item)

:#新增佐料功能

#建立了乙個地瓜物件

di_gua = sweetpotato(

)print

(di_gua)

#開始烤地瓜

i =1

while i<=10:

i+=1 di_gua.cook(1)

print

(di_gua)

if i==2:

di_gua.addcondiments(

'鹽')

elif i==4:

di_gua.addcondiments(

'孜然'

)elif i==8:

di_gua.addcondiments(

'蒜蓉'

)

>>

>

地瓜 狀態:生的(

0),新增的佐料有[

]地瓜 狀態:生的(

1),新增的佐料有[

]地瓜 狀態:生的(

2),新增的佐料有[

'鹽']

地瓜 狀態:生的(

3),新增的佐料有[

'鹽']

地瓜 狀態:生的(

4),新增的佐料有[

'鹽',

'孜然'

]地瓜 狀態:熟惹(

5),新增的佐料有[

'鹽',

'孜然'

]地瓜 狀態:熟惹(

6),新增的佐料有[

'鹽',

'孜然'

]地瓜 狀態:熟惹(

7),新增的佐料有[

'鹽',

'孜然'

]地瓜 狀態:熟惹(

8),新增的佐料有[

'鹽',

'孜然'

,'蒜蓉'

]地瓜 狀態:烤糊了(

9),新增的佐料有[

'鹽',

'孜然'

,'蒜蓉'

]地瓜 狀態:烤糊了(

10),新增的佐料有[

'鹽',

'孜然'

,'蒜蓉'

]

綜合運用——房子與家具
class

home

:def

__init__

(self,area,info,addr)

: self.area = area

self.info = info

self.addr = addr

self.leftarea = area #剩餘面積與內含物品都是房子的屬性。

self.content =

def__str__

(self)

: msg =

%(self.area,self.leftarea,self.info,self.addr)

iflen

(self.content)!=0

: msg +=

'當前房屋裡含有物品%s\n'%(

str(self.content)

)return msg

defadd_item

(self,item)

: self.leftarea -= item.area

class

bed:

def__init__

(self,area,name)

: self.name = name

self.area = area

def__str__

(self)

:return

'床的品牌是:%s,大小是:%d。'

%(self.name,self.area)

house = home(

120,

'三室一廳'

,'北京市 朝陽區 長安街 666號'

)print

(house)

bed1 = bed(3,

'席夢思'

)print

(bed1,end='')

bed2 = bed(2,

'小公尺'

)print

(bed2,end='')

bed3 = bed(4,

'京東'

)print

(bed3)

print

('\n'

)house.add_item(bed1)

print

(house)

house.add_item(bed2)

print

(house)

house.add_item(bed3)

print

(house)

>>

>

房子的面積是:120

,可用面積是:120

,戶型是:三室一廳

床的品牌是:席夢思,大小是:3。床的品牌是:小公尺,大小是:2。床的品牌是:京東,大小是:4。

房子的面積是:120

,可用面積是:117

,戶型是:三室一廳

位址是:北京市 朝陽區 長安街 666號。當前房屋裡含有物品[

'席夢思'

]房子的面積是:120

,可用面積是:115

,戶型是:三室一廳

位址是:北京市 朝陽區 長安街 666號。當前房屋裡含有物品[

'席夢思'

,'小公尺'

]房子的面積是:120

,可用面積是:111

,戶型是:三室一廳

位址是:北京市 朝陽區 長安街 666號。當前房屋裡含有物品[

'席夢思'

,'小公尺'

,'京東'

]

Python 類與物件

引數 預設值 可變引數 關鍵字引數 命名關鍵字引數 返回值 python class student def init self,arg,kwargd 可變引數 arg kwargd if name in kwargd self.name kwargd name defmain s student ...

Python 類與物件

python是一種物件導向的程式語言。python中,幾乎所有東西都是乙個物件。物件有屬性和方法。類是用於建立物件的 藍圖 要建立類,請使用關鍵字class 示例 建立乙個名為myclass的類,其屬性名為x class myclass x 8現在可以使用myclass類建立物件 示例 建立乙個名為...

Python 類與物件

一.一 類 是對一群有相同特徵或者行為的事物的統稱,是抽象的,不可直接使用。二 物件 是由類創造出來的實體,可以直接使用。三 類與物件之間的關係 1.先有類再有物件 2.類只有乙個而物件可以有多個 四 類的設計 3要素 類名 大駝峰命名法 屬性 描述這類事物的特徵 方法 描述這類事物的具體行為 二....