2015-01-09 32 views
1
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() 

應用運行良好,但存在的結果:誤解web.py應用

  1. 本地主機/登錄#獲取方法>>>一些值。

  2. localhost/login #get method >>> some value,some value。

  3. localhost/login #post方法在表單action中>>>一些值,一些值,另一個值。

怎麼可能? 預期的結果是,在test.lists中的每個請求之後將只有一個值

回答

1

Test類將列表定義爲類變量 - 這意味着該類的所有實例之間共享相同的列表。你可能想是這樣的:

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

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

現在每個實例將創建它自己的.lists ATTRIB在創建時。

+0

非常感謝你,你是我的英雄:D .. –