我正在构建一个使用有线键/值存储的数据库。
要查询给定的表,需要在表上有cursor
。图书馆建议重新使用with db.cursor() as cursor:
cursor.get(key)
...
do_something(db)
...
。一般行为可以通过以下伪代码来描述:
with
在cursor
语句do_something(db)
的范围内,只能在当前上下文中使用。如果cursor
需要游标,它必须创建/检索另一个游标,即使它是查询同一个表。否则do_something(db)
会松开它的位置而db.cursor()
的延续并不期望。
您可以通过始终重置光标来解决这个问题,这是一种浪费。相反,最好保留一组准备好使用的游标,当一个游标可以通过list
请求时,这将从可用游标中删除游标并将其返回。完成“上下文”操作后,将其放回原位。
我在Python中解决这个问题的方法是使用db.cursor()
。 def cursor(self):
cursor = self.cursors.pop()
yield cursor
self.cursors.append(cursor)
看起来像:
pip install pygame
这意味着,检索游标,将其发送到当前上下文,上下文完成后,将其放回可用游标列表。
如何避免突变并使用更多功能性方法?
答案 0 :(得分:2)
也许你想要参数?
查找Scheme实现使用的确切构造。
某些实现使用:
http://srfi.schemers.org/srfi-39/srfi-39.html