【问题标题】:Calling function from function in class not working in Python 2.7从类中的函数调用函数在 Python 2.7 中不起作用
【发布时间】:2018-04-09 04:25:02
【问题描述】:

我有一个包含一堆函数的类。出于某种原因,我不能在函数中调用函数。我需要调用另一个函数的主要函数。那是行不通的。这是我的代码:

class MySpider(Spider):

    def parse(self, response):
        # do some stuff

        self.cleanup()
        return

    def cleanup(self):
        # do some stuff

清理函数永远不会被调用。关于如何解决此问题的任何想法?

【问题讨论】:

  • 这是不可重现的。您确定没有调用清理函数,或者您的控制流本身不是这里的问题吗?
  • 没有看到parsed 是如何设置的,我怀疑有人能在这里提供帮助。你可以做一件事添加一个else 并在那里打印一些东西来检查 parse 在那个执行阶段是否为真。
  • 从哪里得到parsed 值?
  • 不知道是不是控制流。如果我摆脱了返回,解析函数会运行到完成,但永远不会调用清理。实际上,解析函数在返回时结束并且不调用清理。
  • Magic 8-ball 说code_num 是一个字符串。

标签: python python-2.7 scrapy


【解决方案1】:

如果解析值True它调用函数

class MySpider(object): 
    def parse(self, response):
        # do some stuff
        parsed = True
        if parsed:
            self.cleanup()
            return
        else:
            print 'parsed is False/None' 
    def cleanup(self):
        # do some stuff
        print "called"

MySpider().parse('response')

Output: called

【讨论】:

  • 这如何回答这个问题?
  • 我展示了如果parsed 不是None 或False,则正确调用cleanup()。如果这不是答案,恐怕这个问题不需要答案。
猜你喜欢
  • 2014-06-01
  • 2016-06-29
  • 1970-01-01
  • 1970-01-01
  • 2021-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多