所以我试图在基于文本的游戏中为武器系统设计一个类。基本上,我希望所有剑都造成1-6点伤害,然后根据武器修改器添加伤害。如果我使用修饰符调用类中的函数,我可以使用该类,但是我想设置一次类而不必多次输入
这是我的代码。
import dice #uses random generation to simulate dice rolls
class sword():
def __init__(self, name, modifier):
self.name = name
self.mod = modifier
def dmg(self, modifier):
base = dice.d6
self.dmg = base + modifier
return self.dmg
x = sword("Sword of coolness", 1)
print x.name
print x.dmg(1)
答案 0 :(得分:2)
这就是你做self.mod = modifier
的原因。现在,值self.mod
可用于方法。所以你可以制作你的方法:
def dmg(self):
base = dice.d6
self.dmg = base + self.mod
return self.dmg
正如YS-L所说,在评论中,你可能不想这样做,因为你用一个值覆盖了dmg
方法。也许更好的想法是给该方法一个不同的名称:
def modify_dmg(self):
base = dice.d6
self.dmg = base + self.mod
return self.dmg