Python入门:属性错误
我刚开始学习Python,今天刚下载了它。我想用它来做一个网络爬虫,所以为了测试一下,下载了一段示例代码。可惜的是,这段代码不能运行,给我报了个错:
“AttributeError: 'MyShell' object has no attribute 'loaded' ”
我不太确定是代码本身有问题,还是我在安装Python的时候做错了什么。安装Python的时候需要做什么特别的设置吗,比如添加环境变量之类的?这个错误一般意味着什么呢?
这是我用的示例代码,里面引入了爬虫类:
import chilkat
spider = chilkat.CkSpider()
spider.Initialize("www.chilkatsoft.com")
spider.AddUnspidered("http://www.chilkatsoft.com/")
for i in range(0,10):
success = spider.CrawlNext()
if (success == True):
print spider.lastUrl()
else:
if (spider.get_NumUnspidered() == 0):
print "No more URLs to spider"
else:
print spider.lastErrorText()
# Sleep 1 second before spidering the next URL.
spider.SleepMs(1000)
2 个回答
-1
1) 把代码放在“尝试...异常”这个块里,这样可以获取到错误的详细信息。
2) 你能告诉我StackTrace的详细信息吗?它表示哪个行号和哪个方法出现了错误。
另外,你能否运行其他简单的Python脚本而没有任何错误?也就是说,试着运行一些示例脚本之类的。
6
那这个错误一般意味着什么呢?
在Python中,属性就是属于某个对象的名字,可以是方法或者变量。AttributeError(属性错误)意味着程序试图使用一个对象的属性,但这个对象并没有你请求的那个属性。
举个例子,字符串对象有一个叫做'upper'的属性,它是一个方法,可以把字符串变成大写。你可以这样写一个使用这个方法的代码:
def get_upper(my_string):
return my_string.upper()
不过,要注意的是,这个方法里并没有任何东西来确保你一定要传入一个字符串。你可以传入一个文件对象,或者一个数字。这些都没有'upper'这个属性,所以Python会报出一个属性错误。
至于你在这个情况下为什么会看到这个错误,你没有提供足够的细节让我们来分析。请把完整的错误信息加到你的问题里。