集体智慧编程第二章的代码执行出错的问题
《集体智慧编程》第二章有一段代码,是从 delicious 上下载数据的代码,就是 deliciousrec.py 里面的那一段,我按书上讲的执行下面几行代码:
from deliciousrec import *
delusers = initializeUserDict('programming')
delusers['tsegaran'] = {}
fillItems(delusers)
结果出现下面的错误提示:
Failed user , retrying
Failed user , retrying
Failed user , retrying
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "deliciousrec.py", line 28, in fillItems
for post in posts:
UnboundLocalError: local variable 'posts' referenced before assignment
我在 delicious 上没有帐号,是不是要用自己的帐号? pydelicious;集体智慧编程
[解决办法]
在你看那本书之前有没有看过python的exception是怎么回事呢?
exception已经明确的告诉你 :变量的赋值在引用之后。
我猜应该有一个全局变量,但是你没有在函数内用global声明他。
(你百度一下也应该能找到)
[解决办法]
没装这个,插不上话
提醒一下,in user_dict 得到的是key值,而不是value值,如果不是这个问题就不知道了
[解决办法]
get_userposts(user)3次都异常的话,不存在posts不能引用,所以应该把for post in posts这块代码挪动到try...except里面:
try:
posts = get_userposts(user)
for post in posts:
...
break
except:
...
[解决办法]
我想你可以在每一句的后面加上 print(user)看看到底哪里是None