所以,我的问题是,如果我要根据这个课程进行比赛,比如说,一个精灵。我像这样制作精灵: elf = Race('Elf',100,50,60,90)
如果精灵进入战斗状态,那么如何让他的健康状况下降,或者他的任何其他属性都会根据某种奖励上升,比如他有某种设备给他+ (STAT)?
我知道有点具体的问题。
这是我到目前为止设置的Race类。 。
class Race(object):
race = None
health = None
strength = None
speed = None
endurance = None
def __init__(self, race, health, strength, speed, endurance):
self.race = race
self.health = health
self.strength = strength
self.speed = speed
self.endurance = endurance
def set_race(self, race):
self.race = race
def set_health(self, health):
self.health = health
def set_strength(self, strength):
self.strength = strength
def set_speed(self, speed):
self.speed = speed
def set_endurance(self, endurance):
self.endurance = endurance
批评是受欢迎的,只要它有建设性!
答案 0 :(得分:0)
嗯,首先,代码由于IndentationError而无法编译,但除了我想的那点之外(因此,请按照{{3}缩进4个SPACES, not tab } 为每个函数体和类体。)
话虽如此,你不需要任何吸气剂或安装者,因为它不是pythonic。如果要更改对象的属性,只需更改属性即可。如果您需要控制属性的设置方式,请使用PEP-8。
此外,在下面的代码中,您实际上并未设置实例变量,您正在设置成员变量(请记住我修复了缩进):
class Race(object):
race = None
health = None
strength = None
speed = None
endurance = None
如果您要移除上述属性但保留self.*
函数中的所有__init__()
,那么您将拥有实例属性。术语self.*
表示"这是我自己的属性,是我的确切实例"。
另外,请考虑重命名比赛。您希望类封装对象的所有属性。想一想:一个角色的种族没有健康。角色可以拥有健康,但角色还有种族。这两件事都是角色的属性。我建议将此课程命名为class Character(object):
。