我正在開發游戲,我要做的一件事情就是擁有一個定義屬性損壞的基類,并使用構造函數來初始化該值。這是我的基礎課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
參數。)
添加回答
舉報
0/150
提交
取消