物件導向程式設計三要素:封裝、繼承、多型。類與物件
萬事萬物都可以用類描述。
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要素 類名 大駝峰命名法 屬性 描述這類事物的特徵 方法 描述這類事物的具體行為 二....