我是一个初学者,正在学习 flask 。在做练习时,我无法理解一些代码。谁能向我解释一下 for 循环的行?
@app.route("/details/<int:pet_id>")
def pet_details(pet_id):
pet = next((pet for pet in pets if pet["id"] == pet_id), None)
if pet is None:
abort(404, description="No Pet was Found with the given ID")
return render_template("details.html", pet = pet)
我无法理解代码中的这一行
pet = next((pet for pet in pets if pet["id"] == pet_id), None)
最佳答案
next
从生成器获取下一个项目,在本例中为 (pet for pet in pets if pet["id"] == pet_id)
。此生成器会将您的 pet
对象列表/集合减少为仅 id 与请求的 pet_id
相同的对象。
这里的 None
是默认值:如果生成器没有下一个元素,它通常会抛出 StopIteration
异常,但在这种情况下,next
将处理异常并返回一个 None
对象而不是抛出错误
关于python - 无法理解Python的那行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63798431/