擅长:python、mysql、java
<p>一种简单的方法是保留一个“事务”列表,其中包含回滚挂起的更改所需的所有信息:</p>
<pre><code>def dbset(self, name, value):
self.transaction.append((name, self.database.get(name)))
self.database[name]=value
def rollback(self):
# undo all changes
while self.transaction:
name, old_value = self.transaction.pop()
self.database[name] = old_value
def commit(self):
# everything went fine, drop undo information
self.transaction = []
</code></pre>