更改python类中对象的属性

2024-09-28 05:21:00 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我的问题是基于我的种族,那么我是说。我把精灵变成这样: elf=种族('elf',100,50,60,90)

如果精灵进入战斗,我如何使他的生命值在一个例子中下降,或者他的任何其他属性基于某种奖励而提高,比如他有某种装备给予他+(属性)?在

有点特别的问题,我知道。在

这是我到目前为止设置的班级竞赛。在

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

批评是受欢迎的,只要它是建设性的!在


Tags: selfnone属性defstrength例子精灵speed
1条回答
网友
1楼 · 发布于 2024-09-28 05:21:00

首先,由于IndentationError,代码无法编译,但这不是我想的要点(所以,请用4个空格缩进,不要按每个函数体和类主体的PEP-8制表符缩进)。在

也就是说,你不需要任何吸气剂或塞特瓶,因为它不是Python。如果要更改对象的属性,只需更改属性即可。如果需要控制属性的设置方式,请使用properties。在

另外,在下面的代码中,您实际上没有设置实例变量,而是在设置成员变量(请记住,我修复了缩进):

class Race(object):

    race = None
    health = None
    strength = None
    speed = None 
    endurance = None

如果要删除上述属性,但保留self.*函数中的所有self.*,那么您将拥有实例属性。术语self.*表示“这是我自己的一个属性,是我自己的确切实例”。在

另外,请考虑重命名种族。你需要一个类来封装一个对象的所有属性。想想看:角色的种族没有健康。一个角色可以有一个生命值,但是这个角色也有一个种族。这两样东西都是性格的属性。我建议命名这个类。在

相关问题 更多 >

    热门问题