代码之家  ›  专栏  ›  技术社区  ›  mchd

只有一个参数时Python抛出多个参数错误

  •  1
  • mchd  · 技术社区  · 6 年前

    我在另一个类中调用一个方法,得到以下错误。这是声明定义方法的类:

    from web import Web
    import ast
    
    
    class WebCrawler:
        web = Web()
    
        def crawl(self):
            root = self.root()
            URL = ast.literal_eval(self.get(root))
            return URL
    

    这个类称之为:

    from web import Web
    from crawler import WebCrawler
    
    web = Web()
    crawler = WebCrawler()
    urls = crawler.crawl(web)
    
    print(urls)
    

    Traceback (most recent call last):
      File "/home/onur/Desktop/web-crawler/test-run.py", line 6, in <module>
        urls = crawler.crawl(web)
    TypeError: crawl() takes 1 positional argument but 2 were given
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   wjandrea sebs    6 年前

    实例方法作为第一个参数隐式传递给实例( self ). 那意味着 crawler.crawl(web) 变成 WebCrawler.crawl(crawler, web) .

    我不知道如何修复它,因为我不熟悉这些模块,但我想 crawl WebCrawler 没有 root

    def crawl(self, arg):
        root = arg.root()
        ...
    
    推荐文章