gpt4 book ai didi

python isinstance 未按预期工作

转载 作者:行者123 更新时间:2023-12-01 05:20:01 25 4
gpt4 key购买 nike

我使用 scrapy 0.20 和 python 2.7

这是我的代码

def process_spider_output(self, response, result, spider):
print 'process_spider_output'
for r in result:
print 'r type = {0}'.format(type(r))
if isinstance(r, Request):
key = self._get_key(r)
if self.db.has_key(key):
spider.log("Ignoring already visited: %s" % r, level=log.INFO)
print 'Ignoring already visited: {0}'.format(r)
continue
elif isinstance(r, FlexibleItem):
key = self._get_key(response.request)
self.db[key] = str(time.time())
spider.log("Writing to log: %s" % key, level=log.INFO)
print 'Writing to log {0}'.format(s)
yield r

我正在尝试打印 r 的类型我的 cmd 上的结果是:

r type = <class 'TestSpider.spiders.FlexibleItem.FlexibleItem'>

所以类型是FlexibleItem

但是为什么第二个条件永远不会成立呢?我从来没有见过第二个条件的打印语句

编辑

这张图片献给现在正在帮助我的好心用户。

enter image description here

最佳答案

在这种情况下,要么是 Ignacio 所说的,要么问题描述不正确。

but why the second condition is never becomes true? I have never seen the printing statement from the second condition

你确定第二个条件永远不会成立吗?将 1/0 放在 elif isinstance(r,FlexibleItem): 之后以确保这一点。

无论如何,了解正在发生的情况的更好方法是使用调试器。将 import pdb;第一个 if 之前的 pdb.set_trace() 将允许逐步运行脚本并查看发生了什么。

关于python isinstance 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22587333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com