更改python类中对象的属性
所以,我的问题是,如果我要以这个职业为基础进行比赛,比如说,一个小精灵。我让精灵像这样: elf=种族('elf',100,50,60,90) 如果精灵进入战斗,我如何让他的生命值在这一次下降,或者他的任何其他属性在某种奖励的基础上上升,比如如果他有某种装备给予他+(属性) 我知道这是一个特别的问题 这是我到目前为止安排的班级竞赛更改python类中对象的属性,python,class,Python,Class,所以,我的问题是,如果我要以这个职业为基础进行比赛,比如说,一个小精灵。我让精灵像这样: elf=种族('elf',100,50,60,90) 如果精灵进入战斗,我如何让他的生命值在这一次下降,或者他的任何其他属性在某种奖励的基础上上升,比如如果他有某种装备给予他+(属性) 我知道这是一个特别的问题 这是我到目前为止安排的班级竞赛 class Race(object): race = None health = None strength = None speed = None endura
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
欢迎批评,只要是建设性的 首先,由于缩进错误,代码无法编译,但这不是我想的重点(因此,请使用4个空格缩进,而不是按照每个函数体和类体的制表符) 话虽如此,您不需要任何getter或setter,因为它不是pythonic。如果要更改对象的属性,只需更改属性即可。如果需要控制属性的设置方式,请使用 另外,在下面的代码中,您实际上并没有设置实例变量,而是设置成员变量(请记住我修复了缩进): 如果要删除上述属性,但将所有的
self.
保留在\uuuu init\uuuuu()
函数中,那么您将拥有实例属性。术语self.*
表示“这是我自己的一个属性,是我的一个确切实例”
<>也请考虑更名比赛。您需要一个类来封装对象的所有属性。想想看:一个角色的种族没有健康。角色可以有生命值,但角色也有种族。这两者都是角色的属性。我建议将此类命名为
类字符(对象):
不幸的是,这更适合于一对一的教程,而不是SO的一般性质,因为您本质上是在询问对象实例的基本原理以及字段是如何修改的。我发布的代码删除了我出于某种原因而使用的缩进。在我的文本编辑器中不是这样的。这些属性是比赛的一部分(每个属性都有一个起始属性),然后我会将比赛添加到角色类中,这样角色的基本属性就是比赛的属性,然后可以通过护甲和武器加值、法术效果和战场效果(如山或密林)进行修改。我遇到的问题是修改统计数据,并将种族类包含到角色类中。我开始怀疑,如果有一个种族和种族统计的列表,这样做是否会更容易。
class Race(object):
race = None
health = None
strength = None
speed = None
endurance = None