创建一个包含数据的类而无需用户输入?

时间:2014-05-24 18:21:21

标签: python class object store

我最近开始了今年年底的计算机科学项目(自我提议,也是我第一年学习它只有大约4个月的python经验)并决定我想在其中做一个简单的Pokemon模拟器。 / p>

我最近陷入了障碍:让我们说用户选择皮卡丘作为他们的首发。我不希望用户输入他们的健康,攻击,速度和动作。他们是否可以创建一个已经拥有该数据的皮卡丘类?

我试过这样的事情:

class Pikachu(object):
    def __init__(self):
        self.data = []
    def health(self):
        self.health = 22
        print self.health
    def attack(self):
        self.attack = 7
    def speed(self):
        self.speed = 6

Pikachu.health()

当我这样做时(试图检查并查看健康状况是否已存储并将按需返回),它会显示错误:

  

TypeError:必须使用皮卡丘实例作为第一个参数调用未绑定方法health()(没有取而代之)

我对错误的含义感到困惑。通常这会起作用,你不需要括号中的参数,但在这种情况下它不会。

是否有一些不同的方法来创建一个类并在其中存储数据?有没有办法只是创建一个对象或做这样的事情:

def Pikachu:
    health = 22
    attack = 7
    speed = 6

1 个答案:

答案 0 :(得分:0)

这是因为您的变量名称与您的方法名称相同。以及为什么不在构造函数中初始化所有内容:

    class Pikachu(object):
    def __init__(self):
        self.data = []
        self.attack = 7
        self.health = 22
        self.speed = 6
    def get_health(self):
        return self.health

    def get_attack(self):
         return self.attack

    def get_speed(self):
         return self.speed

if __name__ == '__main__':
    p = Pikachu()
    print p.get_health()