在同一个类的其他函数中使用__init__参数

时间:2014-11-03 03:29:33

标签: python

所以我试图在基于文本的游戏中为武器系统设计一个类。基本上,我希望所有剑都造成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)

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