Chara怎么死的:Python游戏 当将项目装备到字符类时 该 chara类的对象变量包含该项目

嘿抱歉的长标题,不能完全把我的错误变成一个简短的短语。无论如何代码没有抛出任何异常,只是一个错误我注意到。我正在创建一个简单的基于文本的 python 游戏来获取继承的流程和 whatnot down。在我的 chara 类 (用于初始化字符变量的类) 我有一个空数组设置一个类变量称为装备列表。我创建了一个函数,如果我的一个项目添加到该数组 charb

class Chara():
"""Class used to initialize new characters, including player, 's, enemies
and animals. inventory value should be a dictionary i.e. {Gold:50,
weapons:[sword, bow]} IMPORTANT, all chara object variables must have 
backpack as
as their inventory array key"""
equiptedlist = []
def __init__(self, hp, speed, name, inventory, isenemy, isplayer):
    self.hp = hp
    self.speed = speed
    self.name = name
    self.inventory = inventory
    self.isenemy = isenemy
    self.isplayer = isplayer
def gethp(self):
    return self.hp
def getspeed(self):
    return self.speed
def getname(self):
    return self.name
def getinv(self):
    return self.inventory
#gets whether the char is an enemy or not
def enemy(self):
    return self.isenemy
#gets whether the char is a player or not
def player(self):
    return self.isplayer
def sethp(self, newhp):
    self.hp = newhp
    return self.hp
def setspeed(self, newspeed):
    self.speed = newspeed
    return self.speed
def setname(self, newname):
    self.name = newname
    return self.name
def setinv(self, newinv):
    self.inventory = newinv
    return self.inventory
#sets whether the char is an enemy or not
def setenemy(self, enemy):
    self.isenemy = enemy
    return self.isenemy
#sets whether the char is a player or not
def setplayer(self, player):
    self.isplayer = player
    return self.isplayer
#picks up an item
def pickup(self, item):
    self.inventory.setdefault("backpack", []).append(item)
    return self.inventory
#returns a boolean value to check if the item is in the charas inventory
def has(self, item):
    for key in self.inventory.keys():
        if item in self.inventory[key]:
            return True
        else:
            return False
#returns new enemy hp after an attack
def attack(self, enemy, weapon):
   enemy.sethp(enemy.gethp() - weapon.getdmg())
   return enemy.gethp()
#equipts an item to the player
def equipt(self, item):
    self.equiptedlist.append(item)
    return self.equiptedlist
#checks if an item as equipted
def isequipted(self, item):
    for i in self.equiptedlist:
        if item == i:
            return True
        else:
            return False
0
Here is the python doc that explains why every Chara equips sword.

一般来说,实例变量用于每个实例唯一的数据,类变量用于类的所有实例共享的属性和方法:

class Chara():
    equipped = []           # class variable shared by all instances
    def __init__(self, name):
        self.name = name    # instance variable unique to each instance
        self.equipped = []  # instance variable unique to each instance
    def equip(self, item):
        self.equipped.push(item)
>>> d = Chara('Thor')
>>> d.equip('Mjolnir')
>>> e = Chara('Tony Stark')
>>> e.equip('Mark I')
>>> d.equipped              # Thor unique equipped items
['Mjolnir']
>>> e.equipped              # Ironman unique equipped items
['Mark I']
>>> Chara.equipped          # Shared equipped items
['']

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(541)
Cx 50:HTML5中SVG标签的数字属性 如数学表达式
上一篇
Ccc日本:匹配所有从开始到 /aaa-bbb-ccc/不包括/aaa-bbb-ccc/
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(75条)