关于python:为什么’module’对象不可调用?

Why is 'module' object not callable?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
TypeError: ‘module’ object is not callable

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

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

因为我对python的了解非常基础,所以我很害怕说出正确的话,所以我会把代码放在下面(47行),你会发现它确实是超偏执的,所以我不怀疑这会带来任何问题。误差线是16。我尝试将att变量重命名为atta以及一些重新定位,尽管出现了新的bug,但我解决了它们,最后在同一行中始终存在相同的错误。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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主():

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

如果name='main':主体()

如您所见,我得到了我的character类,其中我定义了battle()方法和groei()方法,非常基本。有人能指出我错过了什么吗?我已经看了好几个小时了。提前谢谢


random是模块,不是功能。你需要打电话给random.random。你也可以选择1号[2号],但在这种情况下,我会选择第一个选项。


random.random()代替random