为什么'module'对象不可调用?

时间:2012-11-30 16:43:39

标签: python object module callable

  

可能重复:
  TypeError: ‘module’ object is not callable

这是我的第一次Python尝试,只是试图在一个新的语言,Python的10年沉默后重新获得基本的编程知识。基本的想法是一个微小的战斗引擎,决定更好的打击。接下来就是窃听代码。

self.__power = self.__att*random(2,4)/dier.__defn

由于我的python知识非常基本,我很害怕说出正确的事情,所以我要把我的代码放在下面(47行),你......会注意到它真的是透明的,所以我不怀疑这会给任何问题。错误线是16.我尝试将att变量重命名为atta以及一些重新定位,虽然新错误来了,我解决了它们,最后它在同一行上始终是相同的错误。

class Character:
def __init__(self,name="", att=0,defn=0,lvl=0,leven=0,exp=0, power=0):
        self.__att = att
        self.__defn = defn
        self.__lvl = lvl
        self.__leven = leven
        self.__name = name
        self.__xp = exp
        self.__power = power

    def batl(self):
        import random
        while self.__lvl <= 3:
            dier = Character("Anaconda",1,1,50,1,0,0)
            print "You encountered an " + dier.__name + " and fight it."
            **self.__power = self.__att*random(2,4)/dier.__defn**
            dier.__power = (dier.__att*random(1,4))/self.__defn
            if self.power > dier.power:
                growth = dier.__lvl*dier.__atta
                groei()
            else:
                dmg = dier.lvl*dier.att
                leven = leven-dmg
            if leven < 0:
                print "Alas, you're done for."
                exit()
            else:
                print "You took " + dmg + "damage and have " + leven + "life left."


    def groei(self):
        if (growth+exp) > 100:
            lvl += 1
            exp = growth-100
            print "You won and gained " + str(growth) + " and grew from level " + str(lvl-1) + " to level " + str(lvl) + "."
        else:
            exp = growth + exp
            print "You won and gained " + str(growth) + "."

def main():

hero = Character("Nevery",2,1,2,100,0,0)
hero.batl()

如果名称 =='主要':     main()的

正如你所看到的,我已经得到了我的角色类,其中我定义了battle()方法和groei()方法,非常基本。任何人都可以指出我错过了什么,看了几个小时。在此先感谢

2 个答案:

答案 0 :(得分:4)

random是模块,而不是函数。您需要致电random.random。你也可以from random import random,但在这种情况下我会选择第一个选项。

答案 1 :(得分:1)

使用random.random()代替random