亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在類中調用基本方法

在類中調用基本方法

一只名叫tom的貓 2021-03-30 21:02:19
我正在開發游戲,我要做的一件事情就是擁有一個定義屬性損壞的基類,并使用構造函數來初始化該值。這是我的基礎課class Weapon(object):def __init__(self, damage):    self.damage = damage這是需要武器進行游戲的實際課程class Crossbow(Weapon):is_loaded = Truereloads = 5def __init__(self, is_loaded, reloads):    super(Crossbow, self).__init__()    self.is_loaded = is_loaded    self.reloads = reloadsdef reload(self):    print "You need to reload, before you can fire again"    time.sleep(2)    if reloads > 0:        print "Reloading bow"        time.sleep(2)        reloads -= 1        is_loaded = True        print "Successfully reloaded bow"        time.sleep(1)        print "You now have",reloads,"arrow left"        time.sleep(2)    else:        print "You don't have any more arrows"        time.sleep(2)我正在使用以下方法測試重新加載功能:c = Crossbow(Weapon)for i in range(1,6):    c.reload()我運行class方法6次的原因是,我想測試reload變量,該變量計算了您重新加載的次數。它每次計數都會減去,一旦達到零,就不會讓您重新加載,因此6次就可以測試全部功能。但是,當我運行該代碼塊時,出現以下錯誤:me.py", line 47, in <module>c = Crossbow(Weapon)TypeError: __init__() takes exactly 3 arguments (2 given)我以前使用過類,但是對于創建基類和構造函數并從中調用其他類是新手。如果有人可以幫助我理解我的問題,我將非常感激。
查看完整描述

2 回答

?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

使用c = Crossbow(initial_load_state, initial_reloads)而不是創建Crossbow的實例c = Crossbow(Weapon)。(此外,您的超類構造函數調用缺少damage參數。)


查看完整回答
反對 回復 2021-04-05
  • 2 回答
  • 0 關注
  • 167 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號