Python 创建具有相同属性的方法
我正在为我的游戏开发类创建一个代码,它需要创建5个敌人和普通玩家的实例。我已经得到了它,所以它创建了其中一个的5个实例,但返回的是另一个。它们都具有相同的属性。我的代码:Python 创建具有相同属性的方法,python,class,methods,instance,Python,Class,Methods,Instance,我正在为我的游戏开发类创建一个代码,它需要创建5个敌人和普通玩家的实例。我已经得到了它,所以它创建了其中一个的5个实例,但返回的是另一个。它们都具有相同的属性。我的代码: class Player(object): def __init__(self, nm, am, wp, ht, tp, ide): self.name = nm self.ammo = am self.weapon = wp self.health =
class Player(object):
def __init__(self, nm, am, wp, ht, tp, ide):
self.name = nm
self.ammo = am
self.weapon = wp
self.health = ht
self.type = tp
self.id = ide
class Enemy(object):
def __init__(self, nm, am, wp, ht, tp, ide):
self.name = nm
self.ammo = am
self.weapon = wp
self.health = ht
self.type = tp
self.id = ide
def __str__(self):
values = "Hi my name is " + self.name + "\n" + "Ammo: " + str(self.ammo) + "\n" + "Weapon: " + self.weapon + "\n" + "Health: " + str(self.health) + "\n" + "I am a: " + self.type + "\n" + "ID #: " + str(self.id)
return values
def __str__(self):
values1 = "Hi my name is " + self.name + "\n" + "Ammo: " + str(self.ammo) + "\n" + "Weapon: " + self.weapon + "\n" + "Health: " + str(self.health) + "\n" + "I am a: " + self.type + "\n" + "ID #: " + str(self.id)
return values1
def main():
Enemies = 0
Players = 0
while Players < 5:
play1 = (Player("Joe", 5, "Machine gun", 22, "Hero", Players))
print (play1)
Players = Players + 1
break
while Enemies < 5:
ene1 = (Enemy("Julian", 100, "Rocket Launcher", 1337, "Enemy", Enemies))
print (ene1)
Enemies = Enemies + 1
main()
class播放器(对象):
定义初始化(自身、nm、am、wp、ht、tp、ide):
self.name=nm
self.ammo=am
自我武器=wp
自我健康=ht
self.type=tp
self.id=ide
类敌人(对象):
定义初始化(自身、nm、am、wp、ht、tp、ide):
self.name=nm
self.ammo=am
自我武器=wp
自我健康=ht
self.type=tp
self.id=ide
定义(自我):
values=“嗨,我的名字是“+self.name+”\n“+”弹药:“+str(self.Ammo)+”\n“+”武器:“+self.arm+”\n“+”健康:“+str(self.Health)+”\n“+”我是:“+self.type+”\n“+”ID:“+str(self.ID)
返回值
定义(自我):
values1=“嗨,我的名字是”+self.name+”\n“+”弹药:“+str(self.Ammo)+”\n“+”武器:“+self.arm+”\n“+”健康:“+str(self.Health)+”\n“+”我是:“+self.type+”\n“+”ID:“+str(self.ID)
返回值1
def main():
敌人=0
玩家=0
当玩家<5时:
游戏1=(玩家(“乔”,5,“机关枪”,22,“英雄”,玩家))
打印(播放1)
玩家=玩家+1
打破
当敌人<5时:
ene1=(敌人(“朱利安”,100,“火箭发射器”,1337,“敌人”,敌人))
印刷品(ene1)
敌人=敌人+1
main()
你的敌人
职业有两种\uuuu str\uuuuu
方法,但你的玩家
职业没有:
class Player(object):
def __init__(self, nm, am, wp, ht, tp, ide):
self.name = nm
self.ammo = am
self.weapon = wp
self.health = ht
self.type = tp
self.id = ide
class Enemy(object):
def __init__(self, nm, am, wp, ht, tp, ide):
self.name = nm
self.ammo = am
self.weapon = wp
self.health = ht
self.type = tp
self.id = ide
def __str__(self):
values = "Hi my name is " + self.name + "\n" + "Ammo: " + str(self.ammo) + "\n" + "Weapon: " + self.weapon + "\n" + "Health: " + str(self.health) + "\n" + "I am a: " + self.type + "\n" + "ID #: " + str(self.id)
return values
def __str__(self):
values1 = "Hi my name is " + self.name + "\n" + "Ammo: " + str(self.ammo) + "\n" + "Weapon: " + self.weapon + "\n" + "Health: " + str(self.health) + "\n" + "I am a: " + self.type + "\n" + "ID #: " + str(self.id)
return values1
您可能想要:
class Player(object):
def __init__(self, nm, am, wp, ht, tp, ide):
self.name = nm
self.ammo = am
self.weapon = wp
self.health = ht
self.type = tp
self.id = ide
def __str__(self):
values1 = "Hi my name is " + self.name + "\n" + "Ammo: " + str(self.ammo) + "\n" + "Weapon: " + self.weapon + "\n" + "Health: " + str(self.health) + "\n" + "I am a: " + self.type + "\n" + "ID #: " + str(self.id)
return values1
class Enemy(object):
def __init__(self, nm, am, wp, ht, tp, ide):
self.name = nm
self.ammo = am
self.weapon = wp
self.health = ht
self.type = tp
self.id = ide
def __str__(self):
values = "Hi my name is " + self.name + "\n" + "Ammo: " + str(self.ammo) + "\n" + "Weapon: " + self.weapon + "\n" + "Health: " + str(self.health) + "\n" + "I am a: " + self.type + "\n" + "ID #: " + str(self.id)
return values
作为旁注,为了尽量减少重复代码,您可以创建一个基类,如:
class BasePlayer(object):
def __init__(self, nm, am, wp, ht, tp, ide):
self.name = nm
self.ammo = am
self.weapon = wp
self.health = ht
self.type = tp
self.id = ide
def __str__(self):
values = "Hi my name is " + self.name + "\n" + "Ammo: " + str(self.ammo) + "\n" + "Weapon: " + self.weapon + "\n" + "Health: " + str(self.health) + "\n" + "I am a: " + self.type + "\n" + "ID #: " + str(self.id)
return values
然后使用继承创建敌人
和玩家
:
class Enemy(BasePlayer):
# enemy related stuff
class Player(BasePlayer):
# goody related stuff