为什么这台发电机不喜欢在打印后使用?

时间:2016-09-25 13:13:24

标签: python python-2.7 generator praw

我正在为Reddit编写一个简单的CLI(使用PRAW),并希望用户能够从列表中选择一个帖子。问题是PRAW返回一个生成器对象,所以要获得一个索引项,我必须使用一些编码技巧,我发现here。不幸的是,代码给了我一个StopIteration错误。

虽然它不是我使用的确切代码,但以下内容会产生相同的结果:

import praw
from itertools import islice


# Open a Reddit connection
r = praw.Reddit("Testing the PRAW API")
top_posts = r.get_front_page(limit=10)

# Print the article titles
i = 1
for post in top_posts:
    print "[%d] %s" % (i, post.title)
    print
    i += 1

# Get input from the user
cmd = int(raw_input("Type in an article to view: "))
# Print the article title
print next(islice(top_posts, cmd - 1, cmd)).title

我很困惑,因为以下确实有效;错误似乎来自打印文章标题?:

import praw
from itertools import islice


# Open a Reddit connection
r = praw.Reddit("Testing the PRAW API")
top_posts = r.get_front_page(limit=10)

# Get input from the user
cmd = int(raw_input("Type in an article to view: "))
# Print the article title
print next(islice(top_posts, cmd - 1, cmd)).title

我不明白为什么打印这些文章会有什么影响?任何帮助将不胜感激!

0 个答案:

没有答案