在Python中创建类对象属性后,如何更改它们?

2024-05-02 07:58:55 发布

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

我正在尝试创建对象属性,这些属性可以在以后根据用户输入进行修改

它的要点是,我试图使一个基于文本的RPG与统计数据。我让玩家成为一个类对象,拥有诸如“HP”、“AC”、“Strength”之类的属性

游戏的一个核心部分是能够相互交互的统计数据。例如,玩家的“AC”是通过加上10和他们的“Dex”修饰符来计算的

我想让玩家选择他们的“Dex”,所以我需要能够相应地修改对象属性

然而,Python似乎没有认识到我在其中所做的数学运算

class Test:
  def __init__(self):
    self.x = 1
    self.y = 2
    self.z = self.x + self.y

test = Test()
test.y = 7
print(str(test.z))

指纹给了我“3”

我怎样才能让它给我“8”


Tags: 对象用户test文本self属性strengthac
1条回答
网友
1楼 · 发布于 2024-05-02 07:58:55

如果您希望在访问时计算的属性值,这是^ {< CD1>}装饰器的任务,请考虑以下示例:

class Player:
    def __init__(self):
        self.x = 1
        self.y = 2
    @property
    def z(self):
        return self.x + self.y

player1 = Player()
player1.y = 7
print(player1.z)

输出:

8

如果您想更多地了解python中的装饰器,我建议您阅读realpython Primer on python decorators

相关问题 更多 >