iT邦幫忙

0

請問為甚麼while 裡面的 time 並不會累加到 self.cook.time 中呢?

1.定義類別: 初始化屬性、被考核添加條掉的方法,顯示對象的信息str

class SweetPotato():
def init(self):
# 烤的時間
self.cook_time = 0
# 地瓜的狀態
self.cook_state = '生的'
# 調料列表
self.condiments = []

def cook(self, time):
    """烤地瓜的方法"""
    # 烤的時間,狀態
    self.cook_time += time
    if 0 <= self.cook_time < 3:
        self.cook_state = '生的'
    elif 3 <= self.cook_time < 5:
        self.cook_state = '半生不熟'
    elif 5 <= self.cook_time < 8:
        self.cook_state = '熟了'
    else:
        self.cook_state = '燒焦了'

def add_condiments(self, condiment):
    """用戶意願的調料追加到調料列表"""
    self.condiments.append(condiment)

def __str__(self):
    return f"這個地瓜總共烤了{self.cook_time}分鐘,狀態是{self.cook_state},調料有{self.condiments}"

2.創建對象,並調用對應的方法

i = 0
while i < 8:
sweetPotato = SweetPotato()
time = int(input('預烤時間為:'))
sweetPotato.cook(time)

condiment = input('調料為:')
sweetPotato.add_condiments(condiment)

print(sweetPotato)
i += time
Vmtayvj iT邦新手 5 級 ‧ 2021-07-31 22:30:43 檢舉
為什麼code block不框好呢?
來搞人?
s052388 iT邦新手 5 級 ‧ 2021-08-01 01:33:33 檢舉
第二次發文...不懂怎麼用 代碼填上去 都很正常 一發文就這樣了
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
uobik
iT邦新手 4 級 ‧ 2021-07-31 23:44:09
最佳解答

因為實例化放在while裡面了,這樣每次執行都會創建一個新的實例
試試看把sweetPotato = SweetPotato()放在while前面

i = 0
sweetPotato = SweetPotato()

while i < 8:
    time = int(input('預烤時間為:'))
    sweetPotato.cook(time)
    condiment = input('調料為:')
    sweetPotato.add_condiments(condiment)

    print(sweetPotato)
    i += time
s052388 iT邦新手 5 級 ‧ 2021-08-01 01:34:12 檢舉

謝謝您:D

我要發表回答

立即登入回答