python生成列表作为全局列表_如何在python中定义全局列表
我有两个方法应该写入同一个列表.
class MySpider():
def parse_post(self, response):
commentList = []
...
commentList.append(someData)
def parse_comments(self, response):
commentList = []
...
commentList.append(someData)
在这段代码中有两个commentList列表,但我需要一个列表,我可以在其中附加数据.我想在这个类的任何方法中访问此列表.我试过了
class MySpider():
commentNum = []
def parse_post(self, response):
...
commentList.append(someData)
def parse_comments(self, response):
...
commentList.append(someData)
但这给了我一个错误全局名称commentList未定义.有关如何在该类的所有方法中访问的单个列表的任何想法?
解决方法:
一种方法是简单地通过其全名(MySpider.commentList)引用变量:
class MySpider(object):
commentList = []
def parse_post(self, response):
...
MySpider.commentList.append(someData)
def parse_comments(self, response):
...
MySpider.commentList.append(someData)
这样,MySpider的所有实例都将共享相同的变量.
如果您可能有多个MySpider实例,并希望每个实例都有自己的commentList,那么只需在构造函数中创建它并将其称为self.commentList:
class MySpider(object):
def __init__(self):
self.commentList = []
def parse_post(self, response):
...
self.commentList.append(someData)
def parse_comments(self, response):
...
self.commentList.append(someData)
如果两个版本都适用于您的情况,我建议使用后者.
标签:python
来源: https://codeday.me/bug/20190726/1541757.html