我正在为Reddit创建一个Bot。我目前只有1个非常大的函数,我正在创建子函数以使其更具可读性。Python:将大功能分解为段
这里是做什么的
def replybot():
submissions = reversed(list(subreddit.get_new(limit=MAXPOSTS)))
for post in submissions:
try:
author = post.author.name
except AttributeError:
print "AttributeError: Author is deleted"
continue # Author is deleted. We don't care about this post.
# DOES PID EXIST IN DB? IF NOT ADD IT
cur.execute('SELECT * FROM oldposts WHERE ID=?', [pid])
sql.commit()
if cur.fetchone(): # Post is already in the database
continue
cur.execute('INSERT INTO oldposts VALUES(?)', [pid])
sql.commit()
...
我期待了破解密码进入段大致击穿即把
try:
author = post.author.name
except AttributeError:
print "AttributeError: Author is deleted"
continue # Author is deleted. We don't care about this post.
在它自己的功能,从内部调用它replybot()
但我遇到了致电continue
的问题。我得到SyntaxError: 'continue' not properly in loop
有没有办法让我这样做?
如果我的代码在其中“继续”,我该怎么办? – Bijan
在主循环中,你可以在任何你想要的地方使用'continue'。在子函数中,改用'raise MyNotFatalError()'。如果您可能会继续执行并非实际错误的条件,那么可以将该异常重命名为更有意义的内容,如“SkipCurrentPost” – spectras