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

Cam*_*Cam 3 python game-development

我正在尝试创建可以根据用户输入稍后修改的对象属性

它的要点是我正在尝试使用统计信息制作基于文本的 RPG。我将 Player 变成了一个类对象,其中包含诸如“HP”、“AC”、“强度”等统计信息。

游戏的核心部分是能够相互交互的统计数据。例如,玩家的“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))
Run Code Online (Sandbox Code Playgroud)

印刷品给了我“3”

我怎样才能让它给我'8'?

Daw*_*weo 5

如果您希望在访问时计算属性值,这是@property装饰器的任务,请考虑以下示例:

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)
Run Code Online (Sandbox Code Playgroud)

输出:

8
Run Code Online (Sandbox Code Playgroud)

如果你想了解更多关于 python 中的装饰器,我建议阅读关于 python 装饰器的 realpython Primer