如何初始化空列表?

时间:2010-10-22 23:30:35

标签: python

每次输入s来自表单; list再次初始化。如何更改代码以将每个新s附加到列表中?

谢谢。

class Test(webapp.RequestHandler):
    def get(self):

        s = self.request.get('sentence')
        list = []                                   
        list.append(s)                      
        htmlcode1 = HTML.table(list)        

2 个答案:

答案 0 :(得分:5)

我不确定您的代码的上下文是什么,但这应该有效:

class Test(webapp.RequestHandler):
    def get(self):
        s = self.request.get('sentence')
        try:
            self.myList.append(s)
        except NameError:
            self.myList= [s]
        htmlcode1 = HTML.table(self.myList)

这使得list成为一个实例变量,所以它会坚持下去。问题是我们第一次尝试使用它时list可能不存在,所以在这种情况下我们需要初始化它。

实际上,看this post,这可能是更清晰的代码:

class Test(webapp.RequestHandler):
    def get(self):
        s = self.request.get('sentence')
        if not hasattr(self, 'myList'):
            self.myList = []
        self.myList.append(s)
        htmlcode1 = HTML.table(self.myList)

[编辑:] 上述因某些原因无效,请试试这个:

class Test(webapp.RequestHandler):
    myList = []
    def get(self):
        s = self.request.get('sentence')
        self.myList.append(s)
        htmlcode1 = HTML.table(self.myList)

答案 1 :(得分:5)

您可以将列表作为对象的成员变量,然后仅在调用get()时更新它:

class Test(webapp.RequestHandler):
    def __init__(self, *p, **kw): # or whatever parameters this takes
        webapp.RequestHandler.__init__(self, *p, **kw)
        self.list = []

    def get(self):
        s = self.request.get('sentence')
        self.list.append(s)                      
        htmlcode1 = HTML.table(self.list)