目錄前導
分析 「烤地瓜」 屬性和方法
定義類:並且定義_init_方法
新增 "烤地瓜" 方法
第一次合併測試
測試cook方法是否好用
定義 addcondiments()方法和 __str__()方法
第二次測試
隱藏資料
直接通過物件名修改
通過方法間接修改 小結
為了更好的理解物件導向程式設計,我們以下面的例子來說明。
示例屬性如下:
示例方法如下:
#定義`地瓜`類
class sweetpotato:
'這是烤地瓜的類'
#定義初始化方法
def __init__(self):
self.cookedlevel = 0
self.cookedstring = "生的"
self.condiments =
#烤地瓜方法
def cook(self, time):
self.cookedlevel += time
if self.cookedlevel > 8:
self.cookedstring = "烤成灰了"
elif self.cookedlevel > 5:
self.cookedstring = "烤好了"
elif self.cookedlevel > 3:
self.cookedstring = "半生不熟"
else:
self.cookedstring = "生的"
class sweetpotato:
'這是烤地瓜的類'
#定義初始化方法
def __init__(self):
self.cookedlevel = 0
self.cookedstring = "生的"
self.condiments =
#烤地瓜方法
def cook(self, time):
self.cookedlevel += time
if self.cookedlevel > 8:
self.cookedstring = "烤成灰了"
elif self.cookedlevel > 5:
self.cookedstring = "烤好了"
elif self.cookedlevel > 3:
self.cookedstring = "半生不熟"
else:
self.cookedstring = "生的"
# 用來進行測試
mysweetpotato = sweetpotato()
print(mysweetpotato.cookedlevel)
print(mysweetpotato.cookedstring)
print(mysweetpotato.condiments)
##執行0生的
在上面的**最後下面新增:
print("------接下來要進行烤地瓜了-----")
mysweetpotato.cook(4) #烤4分鐘
msg = self.cookedstring + " 地瓜"
if len(self.condiments) > 0:
msg = msg + "("
for temp in self.condiments:
msg = msg + temp + ", "
msg = msg.strip(", ")
msg = msg + ")"
return msg
def addcondiments(self, condiments):
下面是完整的**:
class sweetpotato:檢視過著修改物件的屬性(資料),有2種方法:"這是烤地瓜的類"
#定義初始化方法
def __init__(self):
self.cookedlevel = 0
self.cookedstring = "生的"
self.condiments =
#定製print時的顯示內容
def __str__(self):
msg = self.cookedstring + " 地瓜"
if len(self.condiments) > 0:
msg = msg + "("
for temp in self.condiments:
msg = msg + temp + ", "
msg = msg.strip(", ")
msg = msg + ")"
return msg
#烤地瓜方法
def cook(self, time):
self.cookedlevel += time
if self.cookedlevel > 8:
self.cookedstring = "烤成灰了"
elif self.cookedlevel > 5:
self.cookedstring = "烤好了"
elif self.cookedlevel > 3:
self.cookedstring = "半生不熟"
else:
self.cookedstring = "生的"
#新增配料
def addcondiments(self, condiments):
# 用來進行測試
mysweetpotato = sweetpotato()
print("------有了乙個地瓜,還沒有烤-----")
print(mysweetpotato.cookedlevel)
print(mysweetpotato.cookedstring)
print(mysweetpotato.condiments)
print("------接下來要進行烤地瓜了-----")
print("------地瓜經烤了4分鐘-----")
mysweetpotato.cook(4) #烤4分鐘
print(mysweetpotato)
print("------地瓜又經烤了3分鐘-----")
mysweetpotato.cook(3) #又烤了3分鐘
print(mysweetpotato)
print("------接下來要新增配料-番茄醬------")
mysweetpotato.addcondiments("番茄醬")
print(mysweetpotato)
print("------地瓜又經烤了5分鐘-----")
mysweetpotato.cook(5) #又烤了5分鐘
print(mysweetpotato)
print("------接下來要新增配料-芥末醬------")
mysweetpotato.addcondiments("芥末醬")
print(mysweetpotato)
#######################################執行結果
------有了乙個地瓜,還沒有烤-----0生的
------接下來要進行烤地瓜了-----
------地瓜經烤了4分鐘-----
半生不熟 地瓜
------地瓜又經烤了3分鐘-----
烤好了 地瓜
------接下來要新增配料-番茄醬------
烤好了 地瓜(番茄醬)
------地瓜又經烤了5分鐘-----
烤成灰了 地瓜(番茄醬)
------接下來要新增配料-芥末醬------
烤成灰了 地瓜(番茄醬, 芥末醬)
程序已結束,退出**0
sweetpotato.cookedlevel = 5
sweetpotato.cook(5)
明明可以使用第1種方法直接修改,為什麼還要定義方法來間接修改?
至少有2個原因:
python類和物件的應用 烤地瓜
地瓜的屬性 被烤的時間 地瓜的狀態 新增的調料 地瓜的方法 被烤使用者根據意願設定每次烤地瓜的時間 判斷地瓜被烤的總時間是在哪個區間,修改地瓜狀態 新增調料 使用者根據意願設定新增的調 將使用者新增的調料儲存 1.定義類 初始化屬性 被烤和新增調料的方法 顯示物件資訊的str class sweet...
一塊錢的烤地瓜
晚上下班在公交站到我家的路上,買了一塊錢的烤地瓜。看著賣烤地瓜的大哥,心裡真是感慨。同樣都是人,有的吃香喝辣,有的則要為了生計在寒風中困苦謀生。也許人與人從出生開始就是不公平,但是乙個了不起的社會與國家就是要為乙個不公平的群體提供乙個相對公平生活環境和競爭機會。最近看了茅于軾先生的一些講座,感到那些...
《WEB應用測試》筆記(一)
web應用測試 筆記 一 第一章 歡迎進入web測試 利用測試不可能發現所有可能存在的問題,但還是需要進行基於風險的測試。應該優先考慮跟蹤錯誤並評估它們的重要性。管理層希望開發小組 資訊科技小組 測試和質量保證人員提供關於覆蓋 尚未修正缺陷的狀態的定量資料以及延期修復某些缺陷的潛在影響。1 各種測試...