1

重複の可能性:
TypeError: 'module' オブジェクトは呼び出し可能ではありません

これは私にとって初めての 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) + "."

デフメイン():

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

if name == ' main ': main()

ご覧のとおり、私のキャラクター クラスを取得しました。このクラスでは、battle() メソッドと groei() メソッドを非常に基本的に定義しています。誰かが私が見逃しているものを指摘できますか?何時間も見ています. 前もって感謝します

4

2 に答える 2

4

random関数ではなくモジュールです。に電話する必要がありますrandom.random。もできfrom random import randomますが、この場合は最初のオプションを使用します。

于 2012-11-30T16:45:41.140 に答える
1

?random.random()の代わりに使用します。random

于 2012-11-30T16:45:53.503 に答える