Skip to main content
 首页 » 编程设计

python之AttributeError:实例没有属性

2025年05月04日15xxx_UU

这似乎是 Python 中的一个常见错误,我发现很多人都在询问类似的问题,但最后(很长时间)尝试了那些看起来适用但没有运气的解决方案,所以求助于要求找出我所缺少的东西。

我收到 AttributeError: WebHandler 实例没有属性 'search_str'

这似乎是一个特定的方法,每当我从这个方法调用 ___init___ 中设置的任何类变量时,我都会收到此错误。我已经将它作为一个简单的函数而不是一个类方法提取到一个测试文件中并且它工作正常,我已经尝试重新缩进几次以确保它不是那样,所以我在对此有损失。

我正在使用 Python 2.7 和 TextWrangler,如果其中任何一个有用的话(TextWrangler 在 3 年内没有给我任何问题,但我认为应该包括任何东西)

import requests 
import re 
 
class WebHandler(): 
 
    def ___init___(self): 
        self.urllist = [] 
        self.search_str = re.compile(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', re.I|re.M) 
 
    def set_urls(self, test, data): 
        for line in test[11:]: 
            if (("even" in line) or ("odd" in line)): 
                match = re.search(self.search_str, line) 
            self.urllist.append(match.group(0)) 

我尝试过的另一件事是,如果我从 ___init___ 复制属性并简单地使它们成为 set_urls() 的本地并在没有 self 的情况下调用它们这样它就可以正常工作并且不会抛出任何错误,这让我更加困惑。

不知道我错过了什么。谢谢!

请您参考如下方法:

你的初始化函数有三个下划线:

def ___init___(self): 

它should have only two :

def __init__(self): 

如现在所写,创建新对象时不会调用它。