如何解决Boss.py 中的错误,类型错误:__init__() 需要 1 个位置参数,但给出了 2 个
我制作了模块来应用我们关于封装和抽象的课程。我不知道为什么这是一个错误。
这是 Character.py
class Character():
# constructor - initializes username,hp,mana,damage,str,vtr,int,and agi
def __init__ (self,username):
self.__username = username
self.__hp = 100
self.__mana = 100
self.__damage = 5
self.__str = 0 # strength stat
self.__vit = 0 # vitality stat
self.__int = 0 # intelligence stat
self.__agi = 0 # agility stat
def getUsername(self): # get username of user
return self.__username
def setUsername(self,new_username): # sets username
self.__username = new_username
def getHp(self): # get HP
return self.__hp
def setHp(self,new_hp): # set HP
self.__hp = new_hp
def getDamage(self): # get damage
return self.__damage
def setDamage(self,new_damage): # set damage
self.__damage = new_damage
def getStr(self): # get strength stat
return self.__str
def setStr(self,new_str): # set strength stat
self.__str = new_str
def getVit(self): # get vitality stat
return self.__vit
def setVit(self,new_vit): # set vitality stat
self.__vit = new_vit
def getInt(self): # get intelligence stat
return self.__int
def setInt(self,new_int): # set intelligence stat
self.__int = new_int
def getAgi(self): # get agility stat
return self.__agi
def setAgi(self,new_agi): # set agility stat
self.__agi = new_agi
def reduceHp(self,damage_amount): # reduce HP
self.__hp = self.__hp - damage_amount
def addHp(self,heal_amount): # add HP
self.__hp = self.__hp + heal_amount
这被命名为 Novice.py
from Character import Character
class Novice(Character):
def basicAttack(self,character): # prints the Basic Attack
character.reduceHp(self.getDamage())
print(f"{self.getUsername()} performed Basic Attack! -{self.getDamage()}")
print("Enter Username: ")
charac = Novice(input())
print("=======================================================================")
print(f"USERNAME: {charac.getUsername()}")
print(f"HP: {charac.getHp()}")
这是剑客.py
从新手导入新手
class Swordsman(Novice):
def __init__(self,username):
super().__init__(username)
self.setStr(5)
self.setVit(10)
self.setHp(self.getHp()+self.getVit())
def slashAttack(self,character):
self.new_damage = self.getDamage()+self.getStr()
character.reduceHp(self.new_damage)
print(f"{self.getUsername()} performed Slash Attack! -{self.new_damage}")
弓箭手.py
from Novice import Novice
import random
class Archer(Novice):
def __init__(self):
super().__init__(username)
self.setAgi(5)
self.setInt(5)
self.setVit(5)
self.setHP(self.getHp()+self.getVit())
def rangedAttack(self,character):
self.new_damage = self.getDamage()+random.randint(0,self.getInt())
character.reduceHp(self.new_damage)
print(f"{self.getUsername()} performed Slash Attack! -{self.new_damage}")
魔术师.py
from Novice import Novice
class Magician(Novice):
def __init__(self,username):
super().__init__(username)
self.setInt(10)
self.setVit(5)
self.setHp(self.getHp()+self.getVit())
def heal(self):
self.addHp(self.getInt())
print(f"{self.getUsername()} performed Heal! +{self.getInt()}")
def magicAttack(self,character):
self.new_damage = self.getDamage()+self.getInt()
character.reduceHp(self.new_damage)
print(f"{self.getUsername()} performed Magic Attack! -{self.new_damage}")
这被命名为Boss.py
from Swordsman import Swordsman
from Archer import Archer
from Magician import Magician
class Boss(Magician,Swordsman,Archer):
def __init__(self,username):
super().__init__(username)
self.setStr(10)
self.setVit(25)
self.setInt(5)
self.setHp(self.getHp()+self.getVit())
这是Test.py
from Swordsman import Swordsman
from Archer import Archer
from Magician import Magician
from Boss import Boss
print("Enter username for CHARACTER 1: ")
character1 = Swordsman(input())
print("Enter username for CHARACTER 2: ")
character2 = Boss(input())
print("============================================================")
print(f"{character1.getUsername()} HP: {character1.getHp()}")
print(f"{character2.getUsername()} HP: {character2.getHp()}")
print("-------------------------------------------------------------")
character1.slashAttack(character2)
character1.basicAttack(character2)
print(f"{character1.getUsername()} HP: {character1.getHp()}")
print(f"{character2.getUsername()} HP: {character2.getHp()}")
print("-------------------------------------------------------------")
character2.heal()
character2.basicAttack(character1)
character2.slashAttack(character1)
character2.rangedAttacK(character1)
character2.magicAttack(character1)
print(f"{character1.getUsername()} HP:{character1.getHp()}")
print(f"{character2.getUsername()} HP: {character2.getHp()}")
我在 Boss.py 中收到一个错误,指出 TypeError: init() 采用 1 个位置参数,但给出了 2 个。我该如何解决这个问题?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。