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'?
如果您希望在访问时计算属性值,这是@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。
| 归档时间: |
|
| 查看次数: |
38 次 |
| 最近记录: |