如何初始化空列表?

2024-06-25 23:18:29 发布

您现在位置:Python中文网/ 问答频道 /正文

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

谢谢你。

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

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

Tags: 代码testself表单列表getrequestdef
2条回答

我不确定代码的上下文是什么,但这应该可以工作:

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)

您可以将列表设置为对象的成员变量,然后只在调用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)        

相关问题 更多 >