【发布时间】:2016-09-18 07:31:11
【问题描述】:
这似乎是 Python 中的一个常见错误,我发现很多人问过类似的问题,但最后(长时间)尝试了那些似乎适用但没有运气的解决方案,所以求助于要求找出我缺少的东西。
我收到 AttributeError: WebHandler instance has no attribute '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 的情况下调用它们这样它就可以正常工作并且不会抛出任何错误,这让我更加困惑。
不知道我错过了什么。谢谢!
【问题讨论】:
标签: python python-2.7 oop attributeerror