这是一个与最佳实践相关的问题。
我们说我有以下代码:
def clean_text(text, idx):
title = sqlalchemy.query("SELECT title FROM page_titles WHERE id = %s" % idx)
return {title: text}
def scrape_webpage(idx):
""" do some stuff here"""
response = requests.get(link)
return clean_text(response.text, idx)
def main():
for idx in range(10):
scrape_webpage(idx)
if __name__ == '__main__':
main()
我对此代码的主要问题是需要一些有状态(即idx
),它只是通过scrape_webpage
传递。您可以想象,如果在调用clean_text()
之前有许多函数,则idx
必须通过所有函数而不在其中任何函数中使用。
有没有更好的方法clean_text
可以知道循环的状态而不将其作为参数传递(顺便说一下,通过所有使用它的函数)?也许发电机或回调?希望得到一个例子。