误解web.py应用程序

时间:2015-01-09 16:57:22

标签: python instance web.py

import web

urls = ('/', 'Login')
app = web.application(urls, globals())

class Test:
    lists = []

    def bind(self, value):
        self.lists.append(value)

class Login:

     def GET(self):
         test = Test()
         test.bind('some value')
         return rest.lists

     def POST(self):
         test = Test()
         test.bind('another value')
         return test.lists


if __name__ == '__main__':
    app.run()

App运行良好,但有结果:

  1. localhost / login #get method>>>一些价值。

  2. localhost / login #get method>>>一些价值,一些价值。

  3. 表单操作中的
  4. localhost / login #post方法>>>一些价值,一些价值,另一个价值。

  5. 怎么可能? 预期结果是,在test.lists中的每个请求之后,只有一个值

1 个答案:

答案 0 :(得分:1)

Test类将列表定义为类变量 - 这意味着在该类的所有实例之间共享相同的列表。你可能想要这样的东西:

class Test(object):
    def __init__(self):
        self.lists = []

    def bind(self, value):
        self.lists.append(value)

现在每个实例都会在创建时创建自己的.lists attrib。