如何初始化空列表?

Zey*_*nel 10 python

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

谢谢.

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

        s = self.request.get('sentence')
        list = []                                   
        list.append(s)                      
        htmlcode1 = HTML.table(list)        
Run Code Online (Sandbox Code Playgroud)

dln*_*385 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)
Run Code Online (Sandbox Code Playgroud)

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

实际上,看看这篇文章,这可能是更干净的代码:

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)
Run Code Online (Sandbox Code Playgroud)

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

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


sth*_*sth 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)        
Run Code Online (Sandbox Code Playgroud)