求助,看看我是哪里错了

m0_56573579 2023-10-27 17:21:49
class UrlManager():
    def __int__(self,new_urls,old_urls):
        self.new_urls = set()
        self.old_urls = set()
    def add_new_url(self,url):
        if url is None or len(url) == 0:
            return
        if url in self.new_urls or url in self.old_urls:
            return
        self.new_urls.add(url)
    def add_new_urls(self,urls):
        if urls is None or len(urls) == 0:
            return
        for url in urls:
            self.add_new_url(url)
    def get_url(self):
        if self.has_new_url():
            url = self.new_urls.pop()
            self.old_urls.add(url)
            return url
        else:
            return None
    def has_new_url(self):
        return len(self.new_urls) > 0


if __name__ == "__main__":
    url_manger = UrlManager()

    url_manger.add_new_url("url1")
    url_manger.add_new_urls(["url1","url2"])
    print(url_manger.new_urls,url_manger.old_urls)

    print("#*30")
    new_url = url_manger.get_url()
    print(url_manger.new_urls,url_manger.old_urls)

    print("#" * 30)
    new_url = url_manger.get_url()
    print(url_manger.new_urls,url_manger.old_urls)

    print("#" * 30)
    print(url_manger.hae_new_url())

 

运行后报错:Traceback (most recent call last):
  File "D:\爬虫\utils\url_manager.py", line 31, in <module>
    url_manger.add_new_url("url1")
  File "D:\爬虫\utils\url_manager.py", line 9, in add_new_url
    if url in self.new_urls or url in self.old_urls:
AttributeError: 'UrlManager' object has no attribute 'new_urls'

 

检查了好几次,没有发现错误在哪里,求各位老师指点一下

...全文
119 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Filotimo_ 2023-10-28
  • 打赏
  • 举报
回复 3

问题应该是在定义类的构造方法时,__init__错写成__int__引起的。因此,在构造方法中,没有正确实例化new_urls和old_urls属性,导致后面调用时出现了AttributeError错误。将构造方法中的__int__改为__init__即可。

5,848

社区成员

发帖
与我相关
我的任务
社区描述
人生苦短,我用python
社区管理员
  • Python 学习者
  • 嗨学编程
  • 松鼠爱吃饼干
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

欢迎来到Python学习者们的社区,

 

本社区分享你需要的文章、问题解答、技术互助、学习资源、面试系列等等

 

欢迎你的加入,祝你学有所成~

试试用AI创作助手写篇文章吧