1

下の行に次のような警告が表示されます:'str'オブジェクトは呼び出し可能ではありません。

警告を消すために私にできることはありますか?

ありがとう

Action.action()

コードのブロックは次のとおりです。

Action = DefineAction()
Action.action()


class DefineAction:
    def action(self):
        self.action = listAction[generateRandomNumber(0,4)]
        return self.action

これがlistActionです:

listAction =['walks','runs','jaunts','ambles','dashes','sprints']
4

2 に答える 2

6

self.action 名前付きの関数とという名前の変数があるため、これは実際には私が最初に考えたよりも複雑でありself.action、コードは混乱を招きます。初めて呼び出すときDefineAction.action()は関数を文字列で上書きするため、2回目に呼び出すとこのエラーが発生します。

関数と変数に異なる名前を付けるだけで、正常に機能するはずです。

于 2012-10-26T16:46:43.850 に答える
2

関数actionでは、文字列に設定self.actionします。これはAction.action()、最初に呼び出すときに属性Action.actionが文字列に設定されるため、次に呼び出すAction.action()ときにこのエラーが表示されることを意味します。

属性に別の名前を選択し、メソッドの名前と一致しないことを確認してください。DefineAction.action(Action)元のメソッドを呼び出すために使用することもできますaction()が、これは悪い習慣です。

于 2012-10-26T16:49:10.080 に答える