-1

このような単純な web.py サービスを作成しています

urls = (
    '/test', 'index'
)

class index:
    def GET(self):
        user_data = web.input()
        return performstuff(user_data.color, user_data.shade)

    def performstuff(color, shade):
        return "color is " + color + " shade is: " + shade

if __name__ == "__main__":
    app = web.application(urls, globals())
    app.run()

これを実行して http://:8080/test?color=red&shade=dark に移動すると、エラーが発生しますglobal name 'performstuff' is not defined

どうすればこれを解決できますか? 基本的に、私は自分のクラスに別の関数を作成しようとしています。これにより、いくつかのビジネス ロジックを実行できるようになり、その結果を GET メソッドで簡単に返すことができます。

4

3 に答える 3

2

Python オブジェクトの場合、メンバー関数は で参照する必要がありますself。つまり、次のようになります。

def GET(self):
    user_data = web.input()
    return self.performstuff(user_data.color, user_data.shade)
于 2013-10-07T21:19:24.747 に答える
1

performstuffのメソッドでclass indexあるため、先頭に を付ける必要がありますself

def GET(self):
    user_data = web.input()
    return self.performstuff(user_data.color, user_data.shade)
于 2013-10-07T21:20:55.173 に答える
0

@アンソニー

performstuffのメソッドにアクセスするにclass doitは、クラス ( のインスタンスを作成するか、メソッド宣言の上にmyInstance = doit(); myInstance.performstuff()追加して、@classmethoddoit.performstuff()

于 2013-10-07T21:24:57.290 に答える