如何初始化空列表?
每次从表单获取输入的 s
时,list
都会重新初始化。这段代码要怎么改,才能把每个新的 s
添加到列表中呢?
谢谢。
class Test(webapp.RequestHandler):
def get(self):
s = self.request.get('sentence')
list = []
list.append(s)
htmlcode1 = HTML.table(list)
2 个回答
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)
6
我不太清楚你代码的具体情况,但这个应该可以用:
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
时,它可能还没有被创建,所以在这种情况下我们需要先初始化它。
其实,看看这个帖子,这样写可能会更简洁:
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)