Python中文
首页
教程
问答
标签
搜索
登录
注册
函数中无法识别全局变量
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我知道这个问题看起来和这里的其他问题一模一样,因为我只是把它们都读了一遍,它们都说要做我已经尝试过的事情,但它没有奏效(或者我错过了与我的情况有细微差别)。我的情况是:</p> <p>我正在用Scrapy和python2.7.11编写一个scraper,我的代码如下(这是一个删除了不相关行的复制粘贴,但我可以根据请求重新添加):</p> <pre><code>class LbcSubtopicSpider(scrapy.Spider): ...omitted... rawTranscripts = [] rawTranslations = [] def parse(self, response): #global rawTranscripts, rawTranslations rawTitles = [] rawVideos = [] for sel in response.xpath('//ul[1]'): #only scrape the first list ...omitted... index = 0 for sub in sel.xpath('li/ul/li/a'): #scrape the sublist items index += 1 if index%2!=0: #odd numbered entries are the transcripts transcriptLink = sub.xpath('@href').extract() #url = response.urljoin(transcriptLink[0]) #yield scrapy.Request(url, callback=self.parse_transcript) else: #even numbered entries are the translations translationLink = sub.xpath('@href').extract() url = response.urljoin(translationLink[0]) yield scrapy.Request(url, callback=self.parse_translation) print rawTitles print rawVideos print rawTranslations def parse_translation(self, response): global rawTranslations for sel in response.xpath('//p[not(@class)]'): rawTranslation = sel.xpath('text()').extract() rawTranslations.<a href="https://www.cnpython.com/list/append" class="inner-link">append</a>(rawTranslation) </code></pre> <p>这将在任何时候返回一个错误“print rawTranslations”或rawTranslations.append调用(rawTranslation)”是因为未定义全局“rawTranslations”。在</p> <p>正如我之前所说,我已经对这个问题进行了广泛的研究,几乎每个人都在互联网上说,只要在你要使用/修改它的任何函数的开头添加一个“global(name)”行(虽然我从来没有分配给它,所以我甚至不需要这个)。不管我的全局行是否被注释掉,结果都是一样的。这种行为似乎违背了我所读到的关于Python中全局变量如何工作的所有内容,因此我怀疑这可能是一个与如何调用解析函数有关的古怪问题恶心。请求(....). 在</p> <p>很抱歉,你又看到了一个问题,但这次似乎有点扭曲,希望有人能查到真相。谢谢。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>如果要在类中使用变量,可以使用自我xxx在</p> <pre><code>class A: ... var = [] ... def test(self): ... self.var.append(10) ... print self.var </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
9 回答
如何添加表示整数的擦边字符串?
3 回答
如何添加要在Bokeh中使用的新font.ttf文件?
2 回答
如何添加要显示的矩阵XY轴编号和XY轴
1 回答
如何添加计数?
7 回答
如何添加计数器函数?
3 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
8 回答
如何添加计数器来跟踪while循环中的月份和年份?
3 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
1 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
3 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
10 回答
如何添加评论拉梅尔亚姆
6 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
4 回答
如何添加谷歌地点自动完成到Flask?
7 回答
如何添加超时、python discord bot
7 回答
如何添加超过1dp的检查
2 回答
如何添加距离方法
3 回答
如何添加跟随游戏的敌人精灵
7 回答
如何添加路径以便python可以找到程序?
9 回答
如何添加身份验证/安全性以使用happybase访问HBase?
3 回答