我正在尝试创建对象属性,这些属性稍后可以根据用户输入进行修改
它的要点是,我正在尝试制作一个基于文本的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"?
如果您想在访问时计算属性值,这是@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)
输出:
8
如果你想了解更多关于python中装饰器的信息,我建议你阅读关于python装饰器的realpython Primer。